Object oriented framework for multi-method parallel PDE software