Technical Summary

Technical summary for TOUGH2 can be found at:
http://esd.lbl.gov/TOUGH2/TECHNICALSUMMARY.html

The TOUGH2-MP code uses the MPI for parallel implementation. The code partitions a simulation domain, defined by an unstructured grid, using partitioning algorithm from the METIS software package (Karypsis and Kumar, 1998). In parallel simulation, each processor will be in charge of one portion of the simulation domain for updating thermophysical properties, assembling mass and energy balance equations, solving liner equation systems, and performing other local computations. The local linear-equation systems are solved in parallel by multiple processors with the Aztec linear solver package (Tuminaro et al., 1999). Communication between processors is an essential component of the parallel code. An efficient communication scheme has been implemented in the parallel program. High performance and good scalability of TOUGH2-MP were achieved by integrating and optimizing the following procedures: (1) efficient domain partitioning; (2) parallel Jacobian matrix calculations; (3) parallel-solving linearized equation systems; (4) fast communication and data exchange between processors; and (5) efficient memory sharing among processors. 

Current version of the parallel code includes 12 modules: EOS1, EOS2, EOS3, EOS4, EOS5, EOS7, EOS7R, EOS8, EOS9, T2R3D, ECO2N, and EWASG. The TMVOC and TOUGH+Hydrate have also been parallelized.

Further discussion of the parallel implementation can be found on the following paper:

Keni Zhang, Yu-Shu Wu, Chris Ding, Karsten Pruess, 2003, TOUGH2_MP: A Parallel Version of TOUGH2, Proceedings of TOUGH Symposium 2003, Berkeley CA.