I am trying to understand the difference between SEM and FEM. If I go by [this paper](https://pdfs.semanticscholar.org/caa2/d1905e0c1874dc6bc88f7f4a331f4d76b508.pdf), spectral element methods are a subset of FEM methods and the only difference lies in the choice of basis functions. If this is the case, are there any advantages in using traditional FEM based Lagrange basis functions or SEM based on GLL Lagrange basis functions as this leads to dense matrices and bad condition numbers. In general, when would one prefer FEM over SEM if looking for high order methods? 

Are there any open source libraries (ex. dealii, firedrake, fenics) that has SEM as a feature with all the common basis functions used in SEM (chebyshev, Legendre Galerkin or Lagrange basis using Gauss-Legendre-Lobatto or Gauss-Chebyshev Lobatto points).