I've never had a numerical analysis course so I don't know what I need to know. I'm just wondering what kind of books I should get to make me able to simulate these things. I'm wanting to simulate in 3 dimensions. I was thinking about getting a book on finite element analysis because I'm getting the hint that it might work the best, but do you have to know numerical analysis first and the Runge-Kutta method first? Will those things be covered in books about finite element methods? Are there other methods besides finite element methods that would work better? Are there any good books that would help me and do you have any advice on a battle plan to purchase books i.e. Should I just buy a book that covers finite element methods and numerical analysis together or buy separate books that cover those topics individually? Also I don't want to limit myself to just FEM or any one thing. I want to have a comprehensive knowledge of simulation methods, but not if a comprehensive book wouldn't teach you any one thing well. Advice?
The theory behind simulating fluids is called CFD - computational fluid dynamics. This is a wide field, with very high demands on computing power, and numerous methods available, depending on the exact nature of the problem at hand.
One book to start with, here.
In my opinion, trying to learn CFD before having at least a basic knowledge of Numerical Analysis is like trying to learn multiplication before addition: it's not impossible, but not the best idea.
For Numerical Analysis, I studied on this book and I think it's a fair book: does not go too much into details, but still gives you a complete picture of the main topics in Numerical Analysis. If then you want to learn something more about, say, Runge-Kutta methods, you can always look into the references or look for a more specific book.
As for CFD, I find this a good book. It also has a quick review of basic Numerical Linear Algebra at the beginning...
By the way, you will need a software to do CFD simulations, cause it's completely not doable to develop your own 3D code.