
Differential and Differential-Algebraic Systems for the Chemical Engineer
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
This fourth in a suite of five practical guides is an engineer's companion to using numerical methods for the solution of complex mathematical problems. It explains the theory behind current numerical methods and shows in a step-by-step fashion how to use them.
The volume focuses on differential and differential-algebraic systems, providing numerous real-life industrial case studies to illustrate this complex topic. It describes the methods, innovative techniques and strategies that are all implemented in a freely available toolbox called BzzMath, which is developed and maintained by the authors and provides up-to-date software tools for all the methods described in the book. Numerous examples, sample codes, programs and applications are taken from a wide range of scientific and engineering fields, such as chemical engineering, electrical engineering, physics, medicine, and environmental science. As a result, engineers and scientists learn how to optimize processes even before entering the laboratory.
With additional online material including the latest version of BzzMath Library, installation tutorial, all examples and sample codes used in the book and a host of further examples.
More details
Other editions
Additional editions


Persons
Flavio Manenti is assistant professor of chemical engineering at Politecnico di Milano, Italy. He obtained his academic degree and PhD at Politecnico di Milano, where he holds the courses "Chemical Process Dynamics and Control" and "Calculations for the Process Industry". He is author of more than 100 peer-reviewed papers and coordinated 30 industrial projects on dynamic simulation, control and optimization. He received international scientific awards, such as Memorial Burianec (Prague, CZ), Excellence in Simulation (Lake Forest, CA, USA), Alexander von Humboldt for senior scientist (Berlin, Germany) for his research activities.
Content
DEFINITE INTEGRALS
Introduction
Calculation of Weights
Accuracy of Numerical Methods
Modification of the Integration Inverval
Main Integration Methods
Algorithms Derived from the Trapezoid Method
Error Control
Improper Integrals
Gauss-Kronrod Algorithms
Adaptive Methods
Parallel Computations
Classes for Definite Integrals
Case Study: Optimal Adiabatic Bed Reactors for Sulfur Dioxide with Cold Shot Cooling
ORDINARY DIFFERENTIAL EQUATIONS SYSTEMS
Introduction
Algorithm Accuracy
Equation and System Conditioning
Algorithm Stability
Stiff Systems
Multistep and Multivalue Algorithms for Stiff Systems
Control of the Integration Step
Runge-Kutta Methods
Explicit Runge-Kutta Methods
Classes Based on Runge-Kutta Algorithms in the BzzMath Library
Semi-Implicit Runge-Kutta Methods
Implicit and Diagonally Implicit Runge-Kutta Methods
Multistep Algorithms
Multivalue Algorithms
Multivalue Algorithms for Nonstiff Problems
Multivalue Algorithms for Stiff Problems
Multivalue Classes in BzzMath Library
Extrapolation Methods
Some Caveats
ODE: CASE STUDIES
Introduction
Nonstiff Problems
Volterra System
Simulation of Catalytic Effects
Ozone Decomposition
Robertson's Kinetic
Belousov's Reaction
Fluidized Bed
Problem with Discontinuities
Constrained Problem
Hires Problem
Van der Pol Oscillator
Regression Problems with an ODE Model
Zero-Crossing Problem
Optimization-Crossing Problem
Sparse Systems
Use of ODE Systems to Find Steady-State Conditions of Chemical Processes
Industrial Case: Spectrokinetic Modeling
DIFFERENTIAL AND ALGEBRAIC EQUATION SYSTEMS
Introduction
Multivalue Method
DAE Classes in the BzzMath Library
DAE: CASE STUDIES
Introduction
Van der Pol Oscillator
Regression Problems with the DAE Model
Sparse Structured Matrices
Industrial Case: Distillation Unit
BOUNDARY VALUE PROBLEMS
Introduction
Shooting Methods
Special Boundary Value Problems
More General BVP Methods
Selection of the Approximitating Function
Which and How Many Support Points Have to Be Considered?
Which Variables Should Be Selected as Adaptive Parameters?
The BVP Solution Classes in the BzzMath Library
Adaptive Mesh Selection
Case Studies
APPENDIX
Linking the BzzMath Library to Matlab
Copyrights
Index
Preface
This book is aimed at students and professionals needing to numerically solve scientific problems involving differential and algebraic–differential systems.
We assume our readers have the basic familiarity with numerical methods that any undergraduate student in scientific or engineering disciplines should have. We also recommend at least a basic knowledge of C++ programming.
Readers who do not have any of the above should first refer to the companion books in this series:
- Guido Buzzi-Ferraris (1994), Scientific C++: Building Numerical Libraries, the Object-Oriented Way, 2nd ed., Addison-Wesley, Cambridge University Press, 479 pp, ISBN: 0-201-63192-X.
- Guido Buzzi-Ferraris and Flavio Manenti (2010), Fundamentals and Linear Algebra for the Chemical Engineer: Solving Numerical Problems, Wiley-VCH Verlag GmbH, Weinheim, 360 pp, ISBN: 978-3-527-32552-8.
These books explain and apply the fundamentals of numerical methods in C++.
Although many books on differential and algebraic–differential systems approach these topics from a theoretical viewpoint only, we wanted to explain the theoretical aspects in an informal way, by offering an applied approach to this scientific discipline. In fact, this volume focuses on the solution of concrete problems and includes many examples, applications, code samples, programming, and overall programs, to give readers not only the methodology to tackle their specific problems but also the structure to implement an appropriate program and ad hoc algorithms to solve it.
The book describes numerical methods, high-performance algorithms, specific devices, and innovative techniques and strategies, all of which are implemented in a well-established numerical library: the BzzMath library, developed by Prof. Guido Buzzi-Ferraris at the Politecnico di Milano and downloadable from http://www.chem.polimi.it/homes/gbuzzi.
This gives readers the invaluable opportunity to use and implement their code in a numerical library that involves some of the most appealing algorithms in the solution of differential equations, algebraic systems, optimal problems, data regressions for linear and nonlinear cases, boundary value problems, linear programming, and so on.
Unfortunately, unlike many other books that cover only theory, all these numerical contents cannot be explained in a single volume because of their application to real problems and the need for specific code examples. We therefore decided to split the numerical analysis topics into several distinct areas, each one covered by an ad hoc book by the same authors and adopting the same philosophy:
- Vol. I: Buzzi-Ferraris and Manenti (2010), Fundamentals and Linear Algebra for the Chemical Engineer: Solving Numerical Problems, Wiley-VCH Verlag GmbH, Weinheim, Germany.
- Vol. II: Buzzi-Ferraris and Manenti (2010), Interpolation and Regression Models for the Chemical Engineer: Solving Numerical Problems, Wiley-VCH Verlag GmbH, Weinheim, Germany.
- Vol. III: Buzzi-Ferraris and Manenti (2014) Nonlinear Systems and Optimization for the Chemical Engineer: Solving Numerical Problems, Wiley-VCH Verlag GmbH, Weinheim, Germany.
- Vol. IV: Buzzi-Ferraris and Manenti 2014, Differential and Differential–Algebraic Systems for the Chemical Engineer: Solving Numerical Problems, Wiley-VCH Verlag GmbH, Weinheim, Germany.
- Vol. V: Buzzi-Ferraris and Manenti, Linear Programming for the Chemical Engineer: Solving Numerical Problems, Wiley-VCH Verlag GmbH, Weinheim, Germany, in progress.
This book proposes algorithms and methods to solve differential and differential–algebraic systems, whereas the companion books cover linear algebra and linear systems, data analysis and regressions, and nonlinear systems and optimization, respectively. After having introduced the theoretical content, all explain their application in detail and provide optimized C++ code samples to solve general problems. This allows readers to use the proposed programs to tackle their specific numerical issues more easily by using the BzzMath library.
The BzzMath library can be used in any scientific field in which there is a need to solve numerical problems. Its primary use is in engineering, but it can also be used in statistics, medicine, economics, physics, management, environmental sciences, biosciences, and so on.
Outline of This Book
This book deals with the solution of differential and differential–algebraic systems. Analogously to the aforementioned companion books, it proposes a series of robust and high-performance algorithms implemented in the BzzMath library to tackle these multifaceted and notoriously difficult issues.
Definite integrals are solved in Chapter 1. Existing methods and novel alternatives are proposed, implemented in the BzzMath library, and adopted to solve some well-established literature-based tests. Parallel computations are also introduced.
Ordinary differential equation systems are broached in Chapter 2. Conditioning, stability, and stiffness are described in detail by giving specific information on how to handle them whenever they arise. The BzzMath library also implements a wide set of algorithms to solve classical problems and chemical/process engineering problems.
Chapter 3 reports a collection of literature and industrial problems based on ordinary differential equation systems. The basics of the physical problem are described and the model behind it is given together as the initial conditions. Implementation tricks, special functions of the classes, and suggestions to improve the solution's accuracy and efficiency are provided through various examples.
Differential–algebraic systems are explored in greater depth in Chapter 4. Special algorithms to handle this family of problems are described and implemented in the BzzMath library. Classes to handle the sparsity and structure of such systems typical of chemical engineering are also described.
Literature-based examples and industrial case studies are collected in Chapter 5. Implementation tricks and useful functions to handle very large and sparse systems with/without parallel computing are introduced.
Chapter 6 also introduces a novel general class to solve boundary value problems. Very stiff problems, such as shock waves and peaks, are automatically identified and the solution strategy self-adapt to such a situation.
Notation
These books contain icons not only to highlight some important features and concepts but also to underscore that there is potential for serious errors in programming or in selecting the appropriate numerical methods.
New concepts or new ideas. As they may be difficult to understand, it is necessary to change the point of view.
Description and remarks on important concepts and smart and interesting ideas.
Positive aspects, benefits, and advantages of algorithms, methods, and techniques in solving a specific problem.
Negative aspects and disadvantages of algorithms, methods, and techniques in solving a specific problem.
Some aspects are intentionally neglected.
Caveat, risk of making sneaky mistakes, and spread errors.
Description of some BzzMath library classes or functions.
Definitions and properties.
Conditioning status of the mathematical formulation.
Algorithm stability.
The algorithm efficiency assessment.
The problem, method, … is obsolete.
Example folders collected in WileyVol4.zip or in BzzMath7.zip files available at http://www.chem.polimi.it/homes/gbuzzi.
BzzMath Library Style
In order to facilitate both implementation and program reading, it was necessary to diversify the style of the identifiers.
C++ is a case-sensitive language and thus distinguishes between capital letters and small ones. Moreover, C++ identifiers are unlimited in the number of chars for their name, unlike FORTRAN77 identifiers. It is thus possible, and we feel indispensable, to use these prerogatives by giving every variable, object, constant, function, and so on, an identifier that allows us to immediately recognize what we are looking at.
Programmers typically use two different styles to characterize an identifier that consists of two words. One possibility is to separate the word by means of an underscore, that is, dynamic_viscosity. The other possibility is to begin the second word with a capital letter, that is, dynamicViscosity.
The style adopted in the BzzMath library is described hereinafter:
- Constants: The identifier should have more than two capital letters. If several words are to be used, they must be separated by an underscore.
Some good examples are MACH_EPS, PI, BZZ_BIG_FLOAT, and TOLERANCE.
Bad examples are A, Tolerance, tolerance, tol, and MachEps.
- Variables (standard type, derived type, class object): When the identifier consists of a single word, it may consist either of...
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.