MSAT aims to provide a helpful tool to quantitatively analyze the shock instability problem for the schemes with three-point stencils. Detailed information about the matrix stability analysis method can be found in the following:
-
Weijie Ren rwj@nudt.edu.cn
-
Wenjia Xie xiewenjia@nudt.edu.cn
-
Ye Zhang zhangye17a@nudt.edu.cn
-
Hang Yu yuhang18@gfkd.edu.cn
-
Zhengyu Tian tianzhengyu_kd@163.com
Following the next step to use MSAT:
-
Prepare the Fortran complier and LAPACK on the computer.
-
Clone the directory with https://github.com/JameRwj/MSAT_SoftwareX.git.
-
Generate the computational grid and export to Grid.dat.
-
Determine the computation setting in Settings.dat.
-
Compile and run the MSAT.
-
Enter the name of grid file (without extension).
-
View the calculation results and analyze the processing data.
MSAT is written in Fortran and is tested by three compilers: Intel Visual Studio, Ifortran (Intel® Fortran Compiler), and gfortran (GNU Fortran). Here are some instructions for the compilation with different compilers.
-
MSAT is tested by Visual Studio on the Windows system. The Visual Studio (Visual Studio 2022) must be equipped with Intel® oneAPI Toolkits (2023.2) (Intel oneAPI Base Toolkit for Math Kernel Library and Intel oneAPI HPC Toolkit for Intel Fortran Compiler). Before performing the compilation of MSAT, users can create a new project and add ".f90" type files in the source code to this project. Then, some necessary settings must be made:
-
The platform is set to x64
-
Open the Intel Math Kernel Library (Set Parallel in Project properties/Fortran/Libraries)
Finally, MSAT can be compiled with Visual Studio.
-
-
MSAT is also tested by Ifortran and gfortran compiler on the Linux system. The compilation process is consistent regardless of which compiler is used. Ifortran/gfortran and LAPACK must be installed before compiling. Cmake and make tools make the compilation process simple. To use these two tools, users need to prepare *CMakeLists.txt *just as follows:
cmake_minimum_required(VERSION 3.16) set(MAKE_Fortran_COMPILER /usr/bin/gfortran) enable_language(Fortran) Project(MSAT) file(GLOB_RECURSE SRC_FILES ./*.f90) add_executable(MSAT ${SRC_FILES}) find_package(LAPACK) target_link_libraries(MSAT LAPACK::LAPACK)The first line declares the minimum version of cmake and the second line declares the path of the compiler. If there are no special needs, the rest can be left unchanged. Then, MSAT can be compiled by the commands "cmake.", "make", "./MSAT" in turn.
The main settings of the MSAT are stored in Settings.dat, including:
-
The reconstruction method used in MAST: 1. MUSCL; 2. ROUND.
-
The limiter function used in the MUSCL approach. The correspondence between the number and the limiter function is: 1. Superbee limiter; 2. van Leer limiter; 3. van Albada limiter; 4. minmod limiter; 5. the limiter proposed by Xi Deng ; And it will be first-order accurate if choose 0.
-
The Riemann solver used in MSAT. The correspondence between the number and the Riemann solver is: 1. Roe solver; 2. HLLC solver; 3. HLL solver; 4. van Leer solver; 5. AUSM+ solver; 6. SLAU solver; 7. HLLE solver; 8. HLLEM solver.
-
Test case: 1. 2D normal shock 2. other test cases
-
Numerical shock structure
$\varepsilon$ of the 2D normal shock, which is between 0 and 1. -
Mach number of the 2D normal shock.
-
The method of Initializing the 2D normal shock. If it is 1, the 2D flow field is initialized by the Rankine-Hugoniot conditions. And the 2D flow field will be initialized by projecting the steady flow field from 1D computation onto the 2D domain.
-
The iteration steps of the 1D computation.
The coordinates of the grid nodes are stored in the grid file, which is in the ".dat" type. Note that the origin of the coordinates is the lower-left corner of the grid. There are two parts in the grid file. The first part specifies the number of grid nodes in the x and y dimensions. The second part is divided into three columns: the first column contains the x coordinates of each grid point, the second column contains the y coordinates, and the third column displays the z values, which should be 0 due to the two-dimensional nature of the computation.
These files contains the initial flow field, including InitialFlow_rho.dat, InitialFlow_u.dat, InitialFlow_v.dat, and InitialFlow_p.dat. Those files will be used to initialize the flow field if other test cases are used. Note that other programs should obtain the four files.
The results of MSAT include the flow field, result and residual of the 1D computation (if have), scatters of all eigenvalues, and the eigenvectors of the most unstable eigenvalue if it exceeds 0. All the results are ".plt" type and can be opened by Tecplot.