Computational Partial Differential Equations Numerical Methods and Diffpack Programming
During the last decades there has been a tremendous advancement of com puter hardware, numerical algorithms, and scientific software. Engineers and scientists are now equipped with tools that make it possible to explore real world applications of high complexity by means of mathematical models and...
Main Author: | |
---|---|
Format: | eBook |
Language: | English |
Published: |
Berlin, Heidelberg
Springer Berlin Heidelberg
1999, 1999
|
Edition: | 1st ed. 1999 |
Series: | Lecture Notes in Computational Science and Engineering
|
Subjects: | |
Online Access: | |
Collection: | Springer Book Archives -2004 - Collection details see MPG.ReNa |
Table of Contents:
- 1 Getting Started
- 1.1 The First Diffpack Encounter
- 1.2 Steady 1D Heat Conduction
- 1.3 Simulation of Waves
- 1.4 Projects
- 1.5 About Programming with Objects
- 1.6 Coding the PDE Simulator as a Class
- 1.7 Projects
- 2 Introduction to Finite Element Discretization
- 2.1 Weighted Residual Methods
- 2.2 Time Dependent Problems
- 2.3 Finite Elements in One Space Dimension
- 2.4 Example: A 1D Wave Equation
- 2.5 Naive Implementation
- 2.6 Projects
- 2.7 Higher-Dimensional Finite Elements
- 2.8 Calculation of derivatives
- 2.9 Convection-Diffusion Equations
- 2.10 Analysis of the Finite Element Method
- 3 Programming of Finite Element Solvers
- 3.1 A Simple Program for the Poisson Equation
- 3.2 Increasing the Flexibility
- 3.3 Some Visualization Tools
- 3.4 Some Useful Diffpack Features
- 3.5 Introducing More Flexibility
- 3.6 Adaptive Grids
- 3.7 Projects
- 3.8 A Convection-Diffusion Solver
- 3.9 A Heat Equation Solver
- D.1 Storing and Initializing Linear Systems
- D.1.1 Vector and Matrix Formats
- D.1.2 Detailed Matrix Examples
- D.1.3 Representation of Linear Systems
- D.2 Programming with Linear Solvers
- D.2.1 Gaussian Elimination
- D.2.2 A Simple Demo Program
- D.2.3 A 3D Poisson Equation Solver
- D.3 Classical Iterative Methods
- D.4 Conjugate Gradient-like Methods
- D.4.1 Symmetric Systems
- D.4.2 Nonsymmetric Systems
- D.5 Preconditioning Strategies
- D.6 Convergence History and Stopping Criteria
- D.7 Example: Implicit Methods for Transient Diffusion
- 3.10 A More Flexible Heat Equation Solver
- 3.11 Efficient Solution of the Wave Equation
- 4 Nonlinear Problems
- 4.1 Discretization and Solution of Nonlinear PDEs
- 4.2 Software Tools for Nonlinear Finite Element Problems
- 4.3 Projects
- 5 Solid Mechanics Applications
- 5.1 Linear Thermo-Elasticity
- 5.2 Elasto-Viscoplasticity
- 6 Fluid Mechanics Applications
- 6.1 Convection-Diffusion Equations
- 6.2 Shallow Water Equations
- 6.3 An Implicit Finite Element Navier-Stokes Solver
- 6.4 A Classical Finite Difference Navier-Stokes Solver
- 6.5 A Fast Finite Element Navier-Stokes Solver
- 6.6 Projects
- 7 Coupled Problems
- 7.1 Fluid-Structure Interaction; Squeeze-Film Damping
- 7.2 Fluid Flow and Heat Conduction in Pipes
- 7.3 Projects
- A Mathematical Topics
- A.1 Scaling and Dimensionless Variables
- A.2 Indicial Notation
- A.3 Compact Notation for Difference Equations
- A.4 Stability and Accuracy of Difference Approximations
- A.4.1 Typical Solutions of Simple Prototype PDEs
- A.4.2 Physical Significance of Parameters in the Solution
- A.4.3 Analytical Dispersion Relations
- A.4.4 Solution of Discrete Equations
- A.4.5 Numerical Dispersion Relations
- A.4.6 Convergence
- A.4.7 Stability
- A.4.8 Accuracy
- A.4.9 Truncation Error
- A.4.10 Traditional von Neumann Stability Analysis
- A.4.11 Example: Analysis of the Heat Equation
- A.5 Exploring the Nature of Some PDEs
- B Diffpack Topics
- B.1 Brief Overview of Important Diffpack Classes
- B.2 Diffpack-Related Operating System Interaction
- B.2.1 Unix
- B.2.2 Windows
- B.3 Basic Diffpack Features
- B.3.1 Diffpack man pages
- B.3.2 Standard Command-Line Options
- B.3.3 Generalized Input and Output
- B.3.4 Automatic Verification of a Code
- B.4 Visualization Support
- B.4.1 Curves
- B.4.2 Scalar and Vector Fields
- B.5 Details on Finite Element Programming
- B.5.1 Basic Functions for Finite Element Assembly
- B.5.2 Using Functors for the Integrands
- B.5.3 Class Relations in the Finite Element Engine
- B.6 Optimizing Diffpack Codes
- B.6.1 Avoiding Repeated Matrix Factorizations
- B.6.2 Avoiding Repeated Assembly of Linear Systems
- B.6.3 Optimizing the Assembly Process
- B.6.4 Optimizing Array Indexing
- C Iterative Methods for Sparse Linear Systems
- C.1 Classical Iterative Methods
- C.1.1 A General Framework
- C.1.2 Jacobi, Gauss-Seidel, SOR, and SSOR Iteration
- C.2 Conjugate Gradient-Like Iterative Methods
- C.2.1 Galerkin and Least-Squares Methods
- C.2.2 Summary of the Algorithms
- C.2.3 A Framework Based on the Error
- C.3 Preconditioning
- C.3.1 Motivation and Basic Principles
- C.3.2 Classical Iterative Methods as Preconditioners
- C.3.3 Incomplete Factorization Preconditioners
- C.4 Multigrid and Domain Decomposition Methods
- C.4.1 Domain Decomposition
- C.4.2 Multigrid Methods
- D Software Tools for Solving Linear Systems