Viper is a high-order computational fluid dynamics solver written and maintained by Professor Gregory J Sheard. It uses a nodal spectral-element method for spatial discretisation, and time integration is via an operator-splitting scheme based on backwards-differentiation. Spectral elememt methods combine the ability to discretise complex geometries they share with finite element methods, with the superior spatial convergence characteristics of spectral methods. This is achieved through the use of high-order tensor-product Lagrange polynomial shape functions within each element interpolated over the Gauss-Lobatto-Legendre quadrature points, for efficient integration of the equations cast in weak form arising from application of the Galerkin method to elliptical operators.
Viper has the following capabilities. The references should be cited as the original publications that employed these features.
2D Cartesian solver
Axisymmetric solver (cylindrical coordinates without swirl)
Axisymmetric solver (cylindrical coordinates with swirl)
3D solver (hexahedral spectral elements)
High-order passive tracer particle transport
Linear stability analysis (cylindrical coordinates)
Linear stability analysis (Cartesian coordinates)
Spectral element-Fourier 3D solver (Cartesian)
Spectral element-Fourier 3D solver (cylindrical)
Scalar field transport solver (2D Cartesian)
Scalar field transport solver (axisymmetric cylindrical)
Natural convection via Boussinesq model (2D Cartesian)
Natural convection via Boussinesq model (cylindrical)
Quasi-2D MHD flow - SM82 model