added dd based preconditioned cg solver