I would like to know is there a way to break a concave polyhedron into a few convex polyhedron?

Take all planes of facets of your polyhedron. They divide the space onto convex sets. Each of them either is contained to your polyhedron, or does not meet it at all. Take those which are contained. 


The problem of partitioning a polyhedron into the minimum possible number of convex pieces is NPhard. Bernard Chazelle established a quadratic lower bound—$\Omega(n^2)$ in terms of the number $n$ of vertices—in the paper "Convex partitions of polyhedra: a lower bound and worstcase optimal algorithm," SIAM Journal on Computing Volume 13 , Issue 3 (August 1984) pp. 488  507. He also provided a theoretical algorithm in that paper, perhaps never implemented. There has been subsequent work, e.g., "Strategies for polyhedral surface decomposition: An experimental study," Computational Geometry, Volume 7, Issues 56, April 1997, Pages 327342. 

