Review on numerical algorithms for melting and solidification studies and their implementation in general purpose computational fluid dynamic software