All of the above are good answers, but to properly check the design of your system, you will need to know something about headloss in pipes and inlets.
Generally every bend causes the corresponding upstream flow to be a little higher and create a sort of pressure head to get around the bend. This is due to the friction along the walls in the pipe, and water surface tension. Every obstacle causes this effect, and every run of straight pipe has friction head. Keep in mind gravity, and that every thing is at a perpendicular to the forces of gravity. This is why a level tank has the same level of liquid along the perimeter. Now tilt the tank, the forces of gravity come into effect converting to motion, and the water will run out of the lower end. Measure the cross-section and the depth of water will be 1/2 +/- however the cross-section of the tank at the bottom is still full. Now put a little hole in the bottom of the tank, water will run out, and the tank will empty slowly. How slow or how fast the tank empties is dependent on the hole size. Now cut the bottom of the tank off, there is still a time factor in the tank emptying. The time factor is based on gravity @ 64.4 ft/sec., motion coverted to heat energy. Yes there is heat build up in a pipe system. Remember your laws of physics. Velocity also plays a key role in the amount of water leaving the pipe, and don't forget atmospheric pressure, clog all upstream inlets and you remove the source of air displacement.
What I always suggest to young engineers is, forget the programs and study the phnomenium, than at least when you use the programs for timely design, you will immediately know if the answers do not look right! I have seen so many mistakes when using computer programs, that I wonder what happened to the pencil in class. Programs are very usefull when the person using them knows what they are doing, and understands what the program is accomplishing for them. Remember nothing is perfect and programs do have flaws and unknown results in certain situations, Check all your work by hand in the beginning, and if possible review the code of the program, especially the subroutines, these are the basic mathematical computation used. If you do not understand the basic mathematical computations than you will never know if something is right or wrong!!!