PCMSolver Programmers' Manual general-structure coding-standards documentation cmake-usage maintenance testing timer-class