Is there a complete physics simulator that I can use to do general simulations for learning purposes?
Any Turing complete programming language. Some assembly required. We often say that all models are wrong, so whatever problem you desire to simulate is working on some level of abstraction of more fundamental physical laws. These are generally problem-specific and why you should not expect a "general" physics simulator to answer your question (at least not in 2012). Even if you had perfectly correct governing equations, when you perform numerical simulation inadequacies are introduced that range from a loss of accuracy to completely changing the system dynamics.
My simple suggestion is to browse some library of physics codes. It sounds like you want something learning-oriented, fairly open in nature, easy to use, and powerful enough to do full fluid mechanics simulation. These software requirement are almost laughably daunting. For the record, relaxing the accuracy requirement for a computational fluid dynamics simulation does not make it easy.
Here is an ongoing effort that I strongly support, Open Source Physics:
http://www.compadre.org/osp/
You should browse through their libraries to find what comes closest to your requirements. Hypothetically, there is nothing keeping one from using their format (with Java) to write a full 3D simulation, but I must return to my point that you have completely underestimated the challenge of that task. Here are some results of the fluid mechanics section of their library:
http://www.compadre.org/osp/search/search.cfm?gs=225&b=1&qc=Compiled%20Simulation
I suspect you will find that unsatisfactory for your purposes. Here is a specific applet that does a basic Molecular Dynamics (MD) simulation for a gas in 2D:
http://www.compadre.org/osp/items/detail.cfm?ID=8624
I think it's a fantastic program, but the properties of the simulated fluid do not match what you want. It would be possible for you to rewrite their code, expanding into 3D and changing the particle interaction rules to fully answer the question at hand. It would take a lot of work, but if you do so, by all means, please submit your code and post a link.