Eigensystem
The eigenvalues and eigenvectors are important for constructing upwinding schemes. The funtions describe on this page calculate them
Functions
EulerEquationMod.calcA
— Method.This function calculate the Euler flux jacobian in the x direction from the conservative variables. Methods are available for 2 and 3 dimensions
Note that this code calculates pressure internally (ie. it does not call calcPressure).
Inputs: params: a ParamType q: a vector of conservative variables
Inputs/Outputs: A: matrix to be populated with the flux jacobian (overwritten)
Aliasing restrictions: none
EulerEquationMod.calcB
— Method.Like calcA, but in the y directions. See that function for details
EulerEquationMod.calcC
— Method.Like calcA, but in the z direction. See that function for details
EulerEquationMod.calcEScalingx
— Method.This function calculates the diagonal scaling matrix S^2 such that: df/dq = (YS)Lambdainv(YS) and dq/dw = (YS)(Y*S).'
where df/dx is the Euler flux jacobian in the x direction, Y and Lambda are its eigenvectors and eigenvalues, respective (which can be calculated via calcEvecsx and calcEvalsx), and dq/dw is the jacobian of the conservative variables wrt the IR entropy variables. Recall that eigenvectors are defined up to a multiplicitive constant, so Y*S is also a matrix of eigenvectors.
This scaling was originally reported by Merriam: An Entropy-Based Approach to Nonlinear Stability (NASA TR).
Methods are available for 2 and 3 dimensions.
Aliasing restrictions: none
EulerEquationMod.calcEScalingy
— Method.Like calcEScalingx, but in the y direction. See that function for details.
EulerEquationMod.calcEScalingz
— Method.Like calcEScalingx, but in the y direction. See that function for details.
EulerEquationMod.calcEvalsx
— Method.This function calculates the eigenvalues for the Euler flux jacobian in the x direction corresponding to the eigenvectors from calcEvecsx.
Inputs: params: a ParamType q: a vector of conservative variables
Inputs/Outputs: Lambda: vector to be populated with the eigenvalues (overwritten)
Aliasing restrictions: none
EulerEquationMod.calcEvalsy
— Method.Like calcEvalsx, but in the y direction. See that function for details.
EulerEquationMod.calcEvalsz
— Method.Like calcEvalsx, but in the z direction. See that function for details
EulerEquationMod.calcEvecsx
— Method.This function calculates the (right) eigenvectors of the Euler flux jacobian in the x direction at a given state q. Methods are available in 2 and 3 dimensions
Inputs: params: a ParamType q: a vector of conservative variables
Inputs/Outputs: R: Matrix whose columns will be populated with the eigenvectors (overwritten)
Aliasing restrictions: none
EulerEquationMod.calcEvecsy
— Method.Like calcEvecsx, but for the y direction. See that function for details
EulerEquationMod.calcEvecsz
— Method.Like calcEvecx, but in the z direction. See that function for details.