Dedalus: Flexible framework for spectrally solving differential equations