1. A method of simulating a reservoir model, comprising: generating the reservoir model; partitioning the generated reservoir model into multiple sets of different domains, each domain corresponding to a partition for a specific portion of the model that optimizes parallel processing efficiency of the reservoir simulation; re-partitioning the generated reservoir model into a plurality of domains dynamically in order to improve parallel performance, wherein the re-partitioning comprises: a) pre-processing the reservoir model by choosing a partitioning scheme and determining parameters of the partitioning scheme; b) partitioning the generated reservoir model into a plurality of domains using the partitioning scheme; c) post-processing the partitioned reservoir model to further refine the parallel performance of a partitioned calculation; d) evaluating a quality of the post-processed partitioned reservoir model; and e) if the quality of the post-processed partitioned reservoir model is less than a predetermined value, then repeating a, b, c, d, and e using a modified partitioning scheme and parameters; dividing the simulating of the reservoir into a plurality of processing elements; and processing a plurality of the processing elements in parallel, based on the re-partitioned reservoir model.