boundary condition creation moved from solver to block