Added general HamiltonSolver class