Modern advances in software and solution algorithms for reservoir simulation