Author | Langtangen, Hans Petter. author |
---|---|
Title | Computational Partial Differential Equations [electronic resource] : Numerical Methods and Diffpack Programming / by Hans Petter Langtangen |
Imprint | Berlin, Heidelberg : Springer Berlin Heidelberg : Imprint: Springer, 1999 |
Connect to | http://dx.doi.org/10.1007/978-3-662-01170-6 |
Descript | XXIII, 685 p. online resource |
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 -- 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 -- 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