I'm a physics undergrad, looking for a good introductory book on computational science, and numerical methods. Mostly I'm looking for applied books. (Simply because... in a theoretical book, if I can't see why I'm studying it, it's easy to lose motivation!)
Background
I have the following background:
- Strong background in programming (C++/Java/javascript/BASIC/introductory Mathematica)
- parallel computing (enough to compile/fiddle with CUDA samples, and to use mutexes/locks semi-competently)
- Mid-undergraduate physics (so, mechanics, waves, and special relativity, at a decent level, as well as introductory lagrangians)
- Introductory linear algebra
- Vector/tensor calculus (I 'learned' this material, but I really haven't applied it much)
- Proofs/intro real analysis (halfway through baby Rudin, for those familiar, so I'm decent with rigor)
Goals
I'm looking for an applied book, because the simulations I write to figure out a problem are sometimes insufficient! Several of these areas:
- Mechanics. My current method is to treat everything as a rigid sphere, with a spring force, and some damping on the plane of contact whenever a collision occurs. I don't think I've advanced from this in... maybe, three years? So, it would be very useful to learn a new method. Plus, with my own methods I sometimes run into bugs. Finite element analysis looks like a very interesting topic but the only books I've found on it are very rigorous and not very applied, so it's hard to be introduced to the material.
- Wave Motion. It's pretty straightforward to discretize $\nabla^2\phi=\frac{\partial^2\phi}{\partial t ^2}$ and just to use it, but whenever I run into some instability (large error in energy, or an unstable simulation, or anything else that I don't know how to solve), my only solution is to decrease the timestep/increase the resolution. I only find new things every once in a while (such as a decent method for a nonreflecting boundary condition!).
- Electromagnetism. I know vector calculus, so, why not?
- Fluid mechanics? It seems like parts of this aren't that complicated, but I'm not familiar with it.
- Others? Special relativity seems to necessitate electromagnetism, so that's off limits for now, and I'm not that knowledgeable in quantum mechanics. I'm not opposed to pure math things (attractors, etc) so long as there are interesting things computed, and not just several results proved and unused.
So, to clarify, I'm looking for an applied computational, possibly physics-based book, which starts at the introductory level (introductory not being synonymous with easy), and ideally provides a broad overview of multiple methods, with lots of applications, notably in the fields above.
I've looked quite a bit for books in these areas, but usually they turn out to either be way over my head, or theoretical to the point where I don't know what the purpose of what I'm proving/deriving is!
I understand that this is a very soft question, and I was hesitant posting it because of that, because I'm new to this corner of stackexchange, and because it might be seen as too localized. I don't think it's too localized, since I've found questions like these very useful in getting a grasp on a large field that I'm new in. Usually when I want to learn more about a topic I pick up a book, and to figure out what book to pick up I go to stackexchange, and usually the book recommendations on questions others have asked are great. I didn't find any questions applicable to my level on this site, so I think it's appropriate to ask one. Of course I'll take any objections into consideration.
One book that was recommended to me (not here) was "A First Course in Computational Physics" by Devries. The practice problems look especially good/interesting.