add ability to initialize with exact solution