modify: C++ solver use block LU