
Programming Finite Elements in Java(tm)
Hardcover | 4 February 2010
At a Glance
420 Pages
22.86 x 15.88 x 2.54
Hardcover
$149.01
or 4 interest-free payments of $37.25 with
 orÂShips in 5 to 7 business days
Programming Finite Elements in Java (TM) teaches the reader how to programme the algorithms of the finite element method (FEM) in Java (TM). The compact, simple code helps the student to read the algorithms, to understand them and thus to be able to refine them. All of the main aspects of finite element techniques are considered: finite element solution; generation of finite element meshes; and visualization of finite element models and results with Java 3D (TM).
The step-by-step presentation includes algorithm programming and code explanation at each point. Problems and exercises are provided for each chapter, with Java (TM) source code and problem data sets available from http://extras.springer.com/2010/978-1-84882-971-8.
Industry Reviews
From the reviews:
"Throughout the book, the author provides, in an object-oriented paradigm, clear and compact Java code snippets extracted from his own software application. ... The intended audience includes advanced undergraduate students in finite element analysis courses and graduate students in introductory FEM courses. Scientists and engineers who are familiar with FEM techniques can benefit from the book's discussion of object-oriented implementation. ... this book would also be highly valuable for computer scientists who want to learn about computational science and engineering and the FEM." (Alin Anton, ACM Computing Reviews, January, 2013)
| Finite Element Formulation | |
| Introduction | p. 3 |
| Basic Ideas of FEM | p. 3 |
| Formulation of Finite Element Equations | p. 4 |
| Galerkin Method | p. 5 |
| Variational Formulation | p. 8 |
| Example of Shape-function Determination | p. 9 |
| Problems | p. 10 |
| Finite Element Equations for Heat Transfer | p. 13 |
| Problem Statement | p. 13 |
| Finite Element Discretization of Heat Transfer Equations | p. 14 |
| Different Type Problems | p. 16 |
| Triangular Element | p. 17 |
| Problems | p. 19 |
| FEM for Solid Mechanics Problems | p. 21 |
| Problem Statement | p. 21 |
| Finite Element Equations | p. 23 |
| Stiffness Matrix of a Triangular Element | p. 26 |
| Assembly of the Global Equation System | p. 27 |
| Example of the Global Matrix Assembly | p. 29 |
| Problems | p. 30 |
| Finite Element Program | p. 33 |
| Object-oriented Approach to Finite Element Programming | p. 33 |
| Requirements for the Finite Element Application | p. 34 |
| Overall Description | p. 34 |
| User Description | p. 35 |
| User Interface | p. 35 |
| Functions | p. 35 |
| Other Requirements | p. 36 |
| General Structure of the Finite Element Code | p. 36 |
| Problems | p. 38 |
| Finite Element Solution | |
| Finite Element Processor | p. 43 |
| Class Structure | p. 43 |
| Problem Data | p. 49 |
| Data Statements | p. 49 |
| Model Data | p. 51 |
| Load Specification | p. 52 |
| Data Example | p. 54 |
| Data Scanner | p. 57 |
| Problems | p. 61 |
| Finite Element Model | p. 63 |
| Data for the Finite Element Model | p. 63 |
| Class for the Finite Element Model | p. 66 |
| Adding New Data Item | p. 72 |
| Problems | p. 72 |
| Elastic Material | p. 75 |
| Hooke's Law | p. 75 |
| Class for a Material | p. 76 |
| Class for Elastic Material | p. 79 |
| Problems | p. 81 |
| Elements | p. 83 |
| Element Methods | p. 83 |
| Abstract Class Element | p. 84 |
| Element Data | p. 84 |
| Element Constructor | p. 85 |
| Methods of Particular Elements | p. 87 |
| Methods Common to All Elements | p. 88 |
| Container for Stresses | p. 90 |
| Adding New Element Type | p. 91 |
| Problems | p. 92 |
| Numerical Integration | p. 93 |
| Gauss Integration Rule | p. 93 |
| Implementation of Numerical Integration | p. 95 |
| Problems | p. 99 |
| Two-dimensional Isoparametric Elements | p. 101 |
| Shape Functions | p. 101 |
| Strain-Displacement Matrix | p. 104 |
| Element Properties | p. 107 |
| Nodal Equivalent of the Surface Load | p. 108 |
| Example: Computing Nodal Equivalents of a Distributed Load | p. 109 |
| Calculation of Strains and Stresses | p. 110 |
| Problems | p. 111 |
| Implementation of Two-dimensional Quadratic Element | p. 113 |
| Class for Shape Functions and Their Derivatives | p. 113 |
| Element Degeneration | p. 114 |
| Shape Functions | p. 115 |
| Derivatives of Shape Functions | p. 116 |
| One-dimensional Shape Functions and Their Derivatives | p. 118 |
| Class for Eight-node Element | p. 118 |
| Stiffness Matrix | p. 119 |
| Displacement Differentiation Matrix | p. 121 |
| Thermal Vector | p. 122 |
| Nodal Equivalent of a Distributed Load | p. 123 |
| Equivalent Stress Vector | p. 125 |
| Extrapolation from Integration Points to Nodes | p. 126 |
| Other Methods | p. 127 |
| Problems | p. 128 |
| Three-dimensional Isoparametric Elements | p. 129 |
| Shape Functions | p. 129 |
| Strain-Displacement Matrix | p. 131 |
| Element Properties | p. 133 |
| Efficient Evaluation of Element Matrices and Vectors | p. 134 |
| Calculation of Nodal Equivalents for External Loads | p. 134 |
| Example: Nodal Equivalents of a Distributed Load | p. 136 |
| Calculation of Strains and Stresses | p. 138 |
| Extrapolation of Strains and Stresses | p. 138 |
| Problems | p. 139 |
| Implementation of Three-dimensional Quadratic Element | p. 141 |
| Class for Shape Functions and Their Derivatives | p. 141 |
| Element Degeneration | p. 141 |
| Shape Functions | p. 143 |
| Derivatives of Shape Functions | p. 144 |
| Shape Functions and Their Derivatives for an Element Face | p. 147 |
| Class for Twenty-node Element | p. 149 |
| Stiffness Matrix | p. 150 |
| Thermal Vector | p. 152 |
| Nodal Equivalent of a Distributed Load | p. 153 |
| Equivalent Stress Vector | p. 154 |
| Extrapolation from Integration Points to Nodes | p. 155 |
| Other Methods | p. 156 |
| Problems | p. 158 |
| Assembly and Solution | p. 161 |
| Disassembly and Assembly | p. 161 |
| Disassembly of Vectors | p. 161 |
| Assembly of Vectors | p. 163 |
| Assembly Algorithm for Matrices | p. 164 |
| Displacement Boundary Conditions | p. 166 |
| Explicit Specification of Displacement Boundary Conditions | p. 166 |
| Method of Large Number | p. 167 |
| Solution of Finite Element Equations | p. 167 |
| Abstract Solver Class | p. 168 |
| Adding New Equation Solver | p. 170 |
| Problems | p. 171 |
| Direct Equation Solver | p. 173 |
| LDU Solution Method | p. 173 |
| Assembly of Matrix in Symmetric Profile Format | p. 174 |
| LDU Solution Algorithm | p. 178 |
| Tuning of the LDU Factorization | p. 182 |
| Problems | p. 186 |
| Iterative Equation Solver | p. 187 |
| Preconditioned Conjugate Gradient Method | p. 187 |
| Assembly of Matrix in Sparse-row Format | p. 188 |
| PCG Solution | p. 193 |
| Problems | p. 196 |
| Load Data and Load Vector Assembly | p. 199 |
| Data Describing the Load | p. 199 |
| Load Data Input | p. 201 |
| Load Vector Assembly | p. 207 |
| Element Face Load | p. 209 |
| Problems | p. 211 |
| Stress Increment, Residual Vector and Results | p. 213 |
| Computing Stress Increment | p. 213 |
| Residual Vector | p. 215 |
| Results | p. 217 |
| Solution of a Simple Test Problem | p. 219 |
| Problems | p. 220 |
| Elastic-Plastic Problems | p. 223 |
| Constitutive Relations for Elastic-Plastic Material | p. 223 |
| Computing Finite Stress Increments | p. 225 |
| Determining Elastic Fraction of Stress Increment | p. 226 |
| Subincrementation for Computing Stress Increment | p. 226 |
| Material Deformation Curve | p. 227 |
| Implementation of Elastic-Plastic Material Relations | p. 228 |
| Midpoint Integration of Constitutive Relations | p. 234 |
| Nonlinear Solution Procedure | p. 239 |
| Newton-Raphson Method | p. 240 |
| Initial Stress Method | p. 241 |
| Convergence Criteria | p. 242 |
| Example: Solution of an Elastic-Plastic Problem | p. 243 |
| Problems | p. 245 |
| Mesh Generation | |
| Mesh Generator | p. 249 |
| Block Decomposition Method | p. 249 |
| Class Structure | p. 250 |
| Mesh-generation Modules | p. 252 |
| Adding New Module | p. 253 |
| Problems | p. 254 |
| Two-dimensional Mesh Generators | p. 257 |
| Rectangular Block | p. 257 |
| Mesh Inside Eight-node Macroelement | p. 261 |
| Algorithm of Double-quadratic Transformation | p. 261 |
| Implementation of Mesh Generation | p. 264 |
| Example of Mesh Generation | p. 269 |
| Problems | p. 270 |
| Generation of Three-dimensional Meshes by Sweeping | p. 271 |
| Sweeping Technique | p. 271 |
| Implementation | p. 272 |
| Input Data | p. 272 |
| Node Numbering | p. 275 |
| Element Connectivities and Nodal Coordinates | p. 276 |
| Example of Mesh Generation | p. 279 |
| Problems | p. 281 |
| Pasting Mesh Blocks | p. 283 |
| Pasting Technique | p. 283 |
| Implementation | p. 284 |
| Data Input | p. 284 |
| Finding Coincident Nodes | p. 286 |
| Pasting | p. 287 |
| Problems | p. 288 |
| Mesh Transformations | p. 289 |
| Transformation Relations | p. 289 |
| Implementation | p. 291 |
| Input Data | p. 291 |
| Performing Transformations | p. 293 |
| Example of Using Transformations | p. 295 |
| Problems | p. 296 |
| Copying, Writing and Reading Mesh Blocks | p. 297 |
| Copying | p. 297 |
| Writing Mesh to File | p. 299 |
| Reading Mesh from File | p. 300 |
| Problems | p. 302 |
| Visualization of Meshes and Results | |
| Introduction to Java 3D™ | p. 305 |
| Rendering Three-dimensional Objects | p. 305 |
| Scene Graph | p. 306 |
| Scene Graph Nodes | p. 307 |
| Group Nodes | p. 307 |
| Leaf Nodes | p. 308 |
| Node Components | p. 309 |
| Geometry | p. 309 |
| Appearance and Attributes | p. 311 |
| Problems | p. 311 |
| Visualizer | p. 313 |
| Visualization Algorithm | p. 313 |
| Surface of the Finite Element Model | p. 314 |
| Subdivision of Quadratic Surfaces | p. 315 |
| Class Structure of the Visualizer | p. 315 |
| Visualizer Class | p. 316 |
| Input Data | p. 318 |
| Input Data File | p. 318 |
| Class for Data Input | p. 319 |
| Problems | p. 322 |
| Visualization Scene Graph | p. 325 |
| Schematic of the Scene Graph | p. 325 |
| Implementation of the Scene Graph | p. 326 |
| Shape Objects | p. 328 |
| Problems | p. 331 |
| Surface Geometry | p. 333 |
| Creating Geometry of the Model Surface | p. 333 |
| Surface Faces | p. 335 |
| Surface Edges and Nodes | p. 338 |
| Modification of Nodal Coordinates | p. 340 |
| Problems | p. 342 |
| Edge and Face Subdivision | p. 343 |
| Subdivision for Quality Visualization | p. 343 |
| Edge Subdivision | p. 344 |
| Face Subdivision | p. 347 |
| Problems | p. 352 |
| Surface Subdivision | p. 353 |
| Subdivision of the Model Surface | p. 353 |
| Subdivision of Faces into Triangles | p. 356 |
| Arrays for Java 3D | p. 359 |
| Problems | p. 362 |
| Results Field, Color Scale, Interaction and Lights | p. 363 |
| Results Field | p. 363 |
| Color Scale | p. 368 |
| Mouse Interaction | p. 370 |
| Lights and Background | p. 372 |
| Visualization Example | p. 373 |
| Problems | p. 375 |
| Data for Finite Element Solver | p. 377 |
| Data Statements | p. 377 |
| Data Statement | p. 377 |
| Comment Statement | p. 377 |
| Including File | p. 377 |
| End Statement | p. 378 |
| Model Data | p. 378 |
| Parameters | p. 378 |
| Material Properties | p. 378 |
| Finite Element Mesh | p. 379 |
| Displacement Boundary Conditions | p. 379 |
| Load-Specification | p. 380 |
| Load Step Name | p. 380 |
| Parameters | p. 380 |
| Nodal Forces | p. 381 |
| Surface Forces | p. 381 |
| Surface Forces Inside a Box | p. 381 |
| Nodal Temperatures | p. 382 |
| Data for Mesh Generation | p. 383 |
| Mesh-generation Modules | p. 383 |
| Rectangular Mesh Block | p. 384 |
| Mesh Inside Eight-node Macroelement | p. 384 |
| Three-dimensional Mesh by Sweeping | p. 384 |
| Reading Mesh from File | p. 385 |
| Writing Mesh to File | p. 385 |
| Copying Mesh | p. 385 |
| Mesh Transformations | p. 385 |
| Connecting Two Mesh Blocks | p. 386 |
| Data for Visualizer | p. 387 |
| Visualization Data | p. 387 |
| Input Data | p. 387 |
| Example of Problem Solution | p. 389 |
| Problem Statement | p. 389 |
| Mesh Generation | p. 390 |
| Problem Solution | p. 391 |
| Visualization | p. 393 |
| References | p. 397 |
| Index | p. 399 |
| Table of Contents provided by Ingram. All Rights Reserved. |
ISBN: 9781848829718
ISBN-10: 184882971X
Published: 4th February 2010
Format: Hardcover
Language: English
Number of Pages: 420
Audience: General Adult
Publisher: Springer Nature B.V.
Country of Publication: GB
Dimensions (cm): 22.86 x 15.88 x 2.54
Weight (kg): 0.7
Shipping
| Standard Shipping | Express Shipping | |
|---|---|---|
| Metro postcodes: | $9.99 | $14.95 |
| Regional postcodes: | $9.99 | $14.95 |
| Rural postcodes: | $9.99 | $14.95 |
Orders over $0.00 qualify for free shipping.
How to return your order
At Booktopia, we offer hassle-free returns in accordance with our returns policy. If you wish to return an item, please get in touch with Booktopia Customer Care.
Additional postage charges may be applicable.
Defective items
If there is a problem with any of the items received for your order then the Booktopia Customer Care team is ready to assist you.
For more info please visit our Help Centre.
You Can Find This Book In
This product is categorised by
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentObject-Oriented Programming or OOP
- Non-FictionMathematicsCalculus & Mathematical AnalysisNumerical Analysis
- Non-FictionEngineering & TechnologyTechnology in GeneralMaths for Engineers
- Non-FictionEngineering & TechnologyMechanical Engineering & MaterialsMaterials ScienceMechanics of Solids
- Non-FictionEngineering & TechnologyMechanical Engineering & MaterialsMechanical Engineering
- Non-FictionMathematicsApplied Mathematics
- Non-FictionComputing & I.T.Computer Programming & Software Development
- Non-FictionMathematics
























