You should switch from a direct solver to an iterative solver if you would like to efficiently assemble large systems, see for instance the links in: Fast computation of a large system of PDEs
which mentions the usage of multigrids. Note that you should not treat a multigrid solver as a black boxs, and parameters and options should be adjusted to observe optimal performance
2 Likes