OVERTURE: An Object-Oriented Software System for Solving Partial Differential Equations in Serial and Parallel Environments