LU-SGS time integration method for unstructured grid. More...
Go to the source code of this file.
Functions | |
void | serial_pre_lusgs (int neles, int nface, double factor, double *fnorm_vol, double *dt, double *diag, double *fspr) |
Computes Diagonal matrix for LU-SGS method. More... | |
void | ns_serial_lower_sweep (int neles, int nfvars, int nface, int ndims, int *nei_ele, int *mapping, int *unmapping, double *fnorm_vol, double *vec_fnorm, double *uptsb, double *rhsb, double *dub, double *diag, double *fspr) |
Lower sweep of LU-SGS method for Navier-Stokes equations. More... | |
void | rans_serial_lower_sweep (int neles, int nvars, int nfvars, int nface, int ndims, int *nei_ele, int *mapping, int *unmapping, double *fnorm_vol, double *vec_fnorm, double *uptsb, double *rhsb, double *dub, double *diag, double *fspr, double *dsrc) |
Lower sweep of LU-SGS method for RANS equations. More... | |
void | ns_serial_upper_sweep (int neles, int nfvars, int nface, int ndims, int *nei_ele, int *mapping, int *unmapping, double *fnorm_vol, double *vec_fnorm, double *uptsb, double *rhsb, double *dub, double *diag, double *fspr) |
Upper sweep of LU-SGS method for Navier-Stokes equations. More... | |
void | rans_serial_upper_sweep (int neles, int nvars, int nfvars, int nface, int ndims, int *nei_ele, int *mapping, int *unmapping, double *fnorm_vol, double *vec_fnorm, double *uptsb, double *rhsb, double *dub, double *diag, double *fspr, double *dsrc) |
Upper sweep of LU-SGS method for RANS equations. More... | |
void | serial_update (int neles, int nvars, double *uptsb, double *rhsb) |
Updates solution array. More... | |
LU-SGS time integration method for unstructured grid.
======================================================================================================================
LU-SGS time integration method (Single thread only).
To compute solution of the next time step, refer to the following steps.
(1) Preparing LU-SGS :
Computes diagonal matrix of the Implicit operator.
(2) Lower sweep :
First step of LU-SGS method, which computes intermediate solution difference array.
(3) Upper sweep :
Second step of LU-SGS method, which computes next solution difference array.
(4) Update :
Time integration by adding current solution with next time step solution difference
Definition in file lusgs.c.
void ns_serial_lower_sweep | ( | int | neles, |
int | nfvars, | ||
int | nface, | ||
int | ndims, | ||
int * | nei_ele, | ||
int * | mapping, | ||
int * | unmapping, | ||
double * | fnorm_vol, | ||
double * | vec_fnorm, | ||
double * | uptsb, | ||
double * | rhsb, | ||
double * | dub, | ||
double * | diag, | ||
double * | fspr | ||
) |
Lower sweep of LU-SGS method for Navier-Stokes equations.
By processing lower sweep, intermediate solution \(\Delta Q^*\) is computed. This function is used for Euler or Navier-Stokes equations, which has the same flux shape.
solution array is stored in dub
array.
Definition at line 75 of file lusgs.c.
void ns_serial_upper_sweep | ( | int | neles, |
int | nfvars, | ||
int | nface, | ||
int | ndims, | ||
int * | nei_ele, | ||
int * | mapping, | ||
int * | unmapping, | ||
double * | fnorm_vol, | ||
double * | vec_fnorm, | ||
double * | uptsb, | ||
double * | rhsb, | ||
double * | dub, | ||
double * | diag, | ||
double * | fspr | ||
) |
Upper sweep of LU-SGS method for Navier-Stokes equations.
By processing upper sweep, next time step solution \(\Delta Q\) is computed. This function is used for Euler or Navier-Stokes equations, which has the same flux shape.
Solution array is stored in rhsb
array, since right-hand-side array is no longer needed.
Definition at line 207 of file lusgs.c.
void rans_serial_lower_sweep | ( | int | neles, |
int | nvars, | ||
int | nfvars, | ||
int | nface, | ||
int | ndims, | ||
int * | nei_ele, | ||
int * | mapping, | ||
int * | unmapping, | ||
double * | fnorm_vol, | ||
double * | vec_fnorm, | ||
double * | uptsb, | ||
double * | rhsb, | ||
double * | dub, | ||
double * | diag, | ||
double * | fspr, | ||
double * | dsrc | ||
) |
void rans_serial_upper_sweep | ( | int | neles, |
int | nvars, | ||
int | nfvars, | ||
int | nface, | ||
int | ndims, | ||
int * | nei_ele, | ||
int * | mapping, | ||
int * | unmapping, | ||
double * | fnorm_vol, | ||
double * | vec_fnorm, | ||
double * | uptsb, | ||
double * | rhsb, | ||
double * | dub, | ||
double * | diag, | ||
double * | fspr, | ||
double * | dsrc | ||
) |
Upper sweep of LU-SGS method for RANS equations.
By processing upper sweep, next time step solution \(\Delta Q\) is computed. This function is used for RANS equations.
Solution array is stored in rhsb
array, since right-hand-side array is no longer needed.
Definition at line 271 of file lusgs.c.
void serial_pre_lusgs | ( | int | neles, |
int | nface, | ||
double | factor, | ||
double * | fnorm_vol, | ||
double * | dt, | ||
double * | diag, | ||
double * | fspr | ||
) |
Computes Diagonal matrix for LU-SGS method.
This function computes diagonal matrix of the implicit operator. In LU-SGS method, implicit operator is replaced with spectral radius
, so that all element except diagonal is zero. Therefore, diag
array can be allocated as one-dimensional, which has less memory requirement.
Diffusive margin of wave speed is applied.
Definition at line 44 of file lusgs.c.
void serial_update | ( | int | neles, |
int | nvars, | ||
double * | uptsb, | ||
double * | rhsb | ||
) |