CHF106.90
Download steht sofort bereit
Targeted at students and researchers in computational sciences who need to develop computer codes for solving PDEs, the exposition here is focused on numerics and software related to mathematical models in solid and fluid mechanics. The book teaches finite element methods, and basic finite difference methods from a computational point of view, with the main emphasis on developing flexible computer programs, using the numerical library Diffpack. Diffpack is explained in detail for problems including model equations in applied mathematics, heat transfer, elasticity, and viscous fluid flow. All the program examples, as well as Diffpack for use with this book, are available on the Internet. XXXXXXX NEUER TEXT This book is for researchers who need to develop computer code for solving PDEs. Numerical methods and the application of Diffpack are explained in detail. Diffpack is a modern C++ development environment that is widely used by industrial scientists and engineers working in areas such as oil exploration, groundwater modeling, and materials testing. All the program examples, as well as a test version of Diffpack, are available for free over the Internet.
Inhalt
1 Getting Started.- 1.1 The First Diffpack Encounter.- 1.1.1 What is Diffpack?.- 1.1.2 A Trivial C++ Program.- 1.1.3 A Trivial Diffpack Program.- 1.2 Steady 1D Heat Conduction.- 1.2.1 The Physical and Mathematical Model.- 1.2.2 A Finite Difference Method.- 1.2.3 Implementation in Diffpack.- 1.2.4 Dissection of the Program.- 1.2.5 Tridiagonal Matrices.- 1.2.6 Variable Coefficients.- 1.2.7 A Nonlinear Heat Conduction Problem.- 1.3 Simulation of Waves.- 1.3.1 Modeling Vibrations of a String.- 1.3.2 A Finite Difference Method.- 1.3.3 Implementation.- 1.3.4 Visualizing the Results.- 1.3.5 A 2D Wave Equation with Variable Wave Velocity.- 1.3.6 A Model for Water Waves.- 1.4 Projects.- 1.4.1 A Uni-Directional Wave Equation.- 1.4.2 Centered Differences for a Boundary-Layer Problem.- 1.4.3 Upwind Differences for a Boundary-Layer Problem.- 1.5 About Programming with Objects.- 1.5.1 Motivation for the Object Concept.- 1.5.2 Example: Implementation of a Vector Class in C++.- 1.5.3 Arrays in Diffpack.- 1.5.4 Example: Design of an ODE Solver Environment.- 1.5.5 Abstractions for Grids and Fields.- 1.6 Coding the PDE Simulator as a Class.- 1.6.1 Steady 1D Heat Conduction Revisited.- 1.6.2 Empirical Investigation of the Numerical Method.- 1.6.3 Simulation of Waves Revisited.- 1.7 Projects.- 1.7.1 Transient Flow Between Moving Plates.- 1.7.2 Transient Channel Flow.- 1.7.3 Coupled Heat and Fluid Flow.- 1.7.4 Difference Schemes for Transport Equations.- 2 Introduction to Finite Element Discretization.- 2.1 Weighted Residual Methods.- 2.1.1 Basic Principles.- 2.1.2 Example: A 1D Poisson Equation.- 2.1.3 Treatment of Boundary Conditions.- 2.2 Time Dependent Problems.- 2.2.1 A Wave Equation.- 2.2.2 A Heat Equation.- 2.3 Finite Elements in One Space Dimension.- 2.3.1 Piecewise Polynomials.- 2.3.2 Handling of Essential Boundary Conditions.- 2.3.3 Direct Computation of the Linear System.- 2.3.4 Element-By-Element Formulation.- 2.3.5 Extending the Concepts to Quadratic Elements.- 2.3.6 Summary of the Elementwise Algorithm.- 2.4 Example: A 1D Wave Equation.- 2.4.1 The Finite Element Equations.- 2.4.2 Interpretation of the Discrete Equations.- 2.4.3 Accuracy and Stability.- 2.5 Naive Implementation.- 2.6 Projects.- 2.6.1 Heat Conduction with Cooling Law.- 2.6.2 Retardation of a Well-Bore.- 2.7 Higher-Dimensional Finite Elements.- 2.7.1 The Bilinear Element and Generalizations.- 2.7.2 The Linear Triangle.- 2.7.3 Example: A 2D Wave Equation.- 2.7.4 Other Two-Dimensional Element Types.- 2.7.5 Three-Dimensional Elements.- 2.8 Calculation of derivatives.- 2.8.1 Global Least-Squares Smoothing.- 2.8.2 Flux Computations in Heterogeneous Media.- 2.9 Convection-Diffusion Equations.- 2.9.1 A One-Dimensional Model Problem.- 2.9.2 Multi-Dimensional Equations.- 2.9.3 Time-Dependent Problems.- 2.10 Analysis of the Finite Element Method.- 2.10.1 Weak Formulations.- 2.10.2 Variational Problems.- 2.10.3 Results for Continuous Problems.- 2.10.4 Results for Discrete Problems.- 2.10.5 A Priori Error Estimates.- 2.10.6 Numerical Experiments.- 2.10.7 Adaptive Finite Element Methods.- 3 Programming of Finite Element Solvers.- 3.1 A Simple Program for the Poisson Equation.- 3.1.1 Discretization.- 3.1.2 Basic Parts of a Simulator Class.- 3.2 Increasing the Flexibility.- 3.2.1 A Generalized Model Problem.- 3.2.2 Using the Menu System.- 3.2.3 Creating the Grid Object.- 3.3 Some Visualization Tools.- 3.3.1 Storing Fields for Later Visualization.- 3.3.2 Filtering Simres Data.- 3.3.3 Visualizing Diffpack Data in Plotmtv.- 3.3.4 Visualizing Diffpack Data in Matlab.- 3.3.5 Visualizing Diffpack Data in Vtk.- 3.3.6 Visualizing Diffpack Data in IRIS Explorer.- 3.3.7 Plotting Fields Along Lines Through the Domain.- 3.4 Some Useful Diffpack Features.- 3.4.1 The Menu System.- 3.4.2 Multiple Loops.- 3.4.3 Computing Numerical Errors.- 3.4.4 Functors.- 3.4.5 Computing Derivatives of Finite Element Fields.- 3.4.6 Specializing Code in Subclass Solvers.- 3.5 Introducing More Flexibility.- 3.5.1 Setting Boundary Condition Information in the Grid.- 3.5.2 Line and Surface Integrals.- 3.5.3 Simple Mesh Generation Tools.- 3.5.4 Debugging.- 3.5.5 Automatic Report Generation.- 3.5.6 Specializing Code in Subclass Solvers.- 3.5.7 Overriding Menu Answers in the Program.- 3.5.8 Estimating Convergence Rates.- 3.5.9 Axisymmetric Formulations and Cartesian 2D Code.- 3.5.10 Summary.- 3.6 Adaptive Grids.- 3.6.1 How to Extend an Existing Simulator.- 3.6.2 Organization of Refinement Criteria.- 3.6.3 Example: Corner-Flow Singularity.- 3.6.4 lransient Problems.- 3.7 Projects.- 3.7.1 Flow in an Open Inclined Channel.- 3.7.2 Stress Concentration due to Geometric Imperfections.- 3.7.3 Lifting Airfoil.- 3.8 A Convection-Diffusion Solver.- 3.9 A Heat Equation Solver.- 3.9.1 Discretization.- 3.9.2 Implementation.- 3.10 A More Flexible Heat Equation Solver.- 3.10.1 About the Model Problem and the Simulator.- 3.10.2 Visualization and Animation of Time-Dependent Data.- 3.10.3 Variable Time Step Size.- 3.10.4 Applying a Transient Solver to a Stationary PDE.- 3.10.5 Handling Simulation and Visualization from a Script.- 3.10.6 Some Computer Exercises Involving Heat Transfer.- 3.11 Efficient Solution of the Wave Equation.- 3.11.1 Discretization.- 3.11.2 Implementation.- 3.11.3 Extensions of the Model Problem.- 3.11.4 Flexible Representation of Variable Coefficients.- 4 Nonlinear Problems.- 4.1 Discretization and Solution of Nonlinear PDEs.- 4.1.1 Finite Difference Discretization.- 4.1.2 Finite Element Discretization.- 4.1.3 The Group Finite Element Method.- 4.1.4 Successive Substitutions.- 4.1.5 Newton-Raphson's Method.- 4.1.6 A Transient Nonlinear Heat Conduction Problem.- 4.1.7 Iteration Methods at the PDE Level.- 4.1.8 Continuation Methods.- 4.2 Software Tools for Nonlinear Finite Element Problems.- 4.2.1 A Solver for a Nonlinear Heat Equation.- 4.2.2 Extending the Solver.- 4.3 Projects.- 4.3.1 Operator Splitting for a Reaction-Diffusion Model.- 4.3.2 Compressible Potential Flow.- 5 Solid Mechanics Applications.- 5.1 Linear Thermo-Elasticity.- 5.1.1 Physical and Mathematical Problem.- 5.1.2 A Finite Element Method.- 5.1.3 Engineering Finite Element Notation.- 5.1.4 Implementation.- 5.1.5 Examples.- 5.2 Elasto-Viscoplasticity.- 5.2.1 Basic Physical Features of Elasto-Viscoplasticity.- 5.2.2 A Three-Dimensional Elasto-Viscoplastic Model.- 5.2.3 Simplification in Case of a Forward Schemne in Time.- 5.2.4 Numerical Handling of Yield Criteria.- 5.2.5 Implementation.- 6 Fluid Mechanics Applications.- 6.1 Convection-Diffusion Equations.- 6.1.1 The Physical and Mathematical Model.- 6.1.2 A Finite Element Method.- 6.1.3 Incorporation of Nonlinearities.- 6.1.4 Software Tools.- 6.1.5 Melting and Solidification.- 6.2 Shallow Water Equations.- 6.2.1 The Physical and Mathematical Model.- 6.2.2 …