Refactor codes

To ease the mixing process of 2D and 3D cases, the indices is made 3D no
matter the domain is 2D or 3D. Also the mesh return the grid number as 1
of the dimension that does not exist.
Add Domain::calcDistance(…)
Add Velocity class hierarchy
Modify structured mesh and its scalar field
Provide access to polar ring and the its data