LU-SGS time integration method for unstructured grid. More...

Go to the source code of this file.
Functions | |
| void | serial_pre_lusgs (UCFD_INT neles, UCFD_INT nface, UCFD_FLOAT factor, UCFD_FLOAT *fnorm_vol, UCFD_FLOAT *dt, UCFD_FLOAT *diag, UCFD_FLOAT *fspr) |
| Computes Diagonal matrix for LU-SGS method. More... | |
| void | ns_serial_lower_sweep (UCFD_INT neles, UCFD_INT nface, UCFD_INT *nei_ele, UCFD_FLOAT *fnorm_vol, UCFD_FLOAT *vec_fnorm, UCFD_FLOAT *uptsb, UCFD_FLOAT *rhsb, UCFD_FLOAT *dub, UCFD_FLOAT *diag, UCFD_FLOAT *fspr) |
| Lower sweep of LU-SGS method for Navier-Stokes equations. More... | |
| void | rans_serial_lower_sweep (UCFD_INT neles, UCFD_INT nface, UCFD_INT *nei_ele, UCFD_FLOAT *fnorm_vol, UCFD_FLOAT *vec_fnorm, UCFD_FLOAT *uptsb, UCFD_FLOAT *rhsb, UCFD_FLOAT *dub, UCFD_FLOAT *diag, UCFD_FLOAT *fspr, UCFD_FLOAT *dsrc) |
| Lower sweep of LU-SGS method for RANS equations. More... | |
| void | ns_serial_upper_sweep (UCFD_INT neles, UCFD_INT nface, UCFD_INT *nei_ele, UCFD_FLOAT *fnorm_vol, UCFD_FLOAT *vec_fnorm, UCFD_FLOAT *uptsb, UCFD_FLOAT *rhsb, UCFD_FLOAT *dub, UCFD_FLOAT *diag, UCFD_FLOAT *fspr) |
| Upper sweep of LU-SGS method for Navier-Stokes equations. More... | |
| void | rans_serial_upper_sweep (UCFD_INT neles, UCFD_INT nface, UCFD_INT *nei_ele, UCFD_FLOAT *fnorm_vol, UCFD_FLOAT *vec_fnorm, UCFD_FLOAT *uptsb, UCFD_FLOAT *rhsb, UCFD_FLOAT *dub, UCFD_FLOAT *diag, UCFD_FLOAT *fspr, UCFD_FLOAT *dsrc) |
| Upper sweep of LU-SGS method for RANS equations. More... | |
| void | lusgs_serial_ns_update (UCFD_INT neles, UCFD_FLOAT *uptsb, UCFD_FLOAT *rhsb) |
| Updates solution array. More... | |
| void | lusgs_serial_update (UCFD_INT neles, UCFD_FLOAT *uptsb, UCFD_FLOAT *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 lusgs_serial_ns_update | ( | UCFD_INT | neles, |
| UCFD_FLOAT * | uptsb, | ||
| UCFD_FLOAT * | rhsb | ||
| ) |
| void lusgs_serial_update | ( | UCFD_INT | neles, |
| UCFD_FLOAT * | uptsb, | ||
| UCFD_FLOAT * | rhsb | ||
| ) |
| void ns_serial_lower_sweep | ( | UCFD_INT | neles, |
| UCFD_INT | nface, | ||
| UCFD_INT * | nei_ele, | ||
| UCFD_FLOAT * | fnorm_vol, | ||
| UCFD_FLOAT * | vec_fnorm, | ||
| UCFD_FLOAT * | uptsb, | ||
| UCFD_FLOAT * | rhsb, | ||
| UCFD_FLOAT * | dub, | ||
| UCFD_FLOAT * | diag, | ||
| UCFD_FLOAT * | 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 74 of file lusgs.c.


| void ns_serial_upper_sweep | ( | UCFD_INT | neles, |
| UCFD_INT | nface, | ||
| UCFD_INT * | nei_ele, | ||
| UCFD_FLOAT * | fnorm_vol, | ||
| UCFD_FLOAT * | vec_fnorm, | ||
| UCFD_FLOAT * | uptsb, | ||
| UCFD_FLOAT * | rhsb, | ||
| UCFD_FLOAT * | dub, | ||
| UCFD_FLOAT * | diag, | ||
| UCFD_FLOAT * | 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 193 of file lusgs.c.


| void rans_serial_lower_sweep | ( | UCFD_INT | neles, |
| UCFD_INT | nface, | ||
| UCFD_INT * | nei_ele, | ||
| UCFD_FLOAT * | fnorm_vol, | ||
| UCFD_FLOAT * | vec_fnorm, | ||
| UCFD_FLOAT * | uptsb, | ||
| UCFD_FLOAT * | rhsb, | ||
| UCFD_FLOAT * | dub, | ||
| UCFD_FLOAT * | diag, | ||
| UCFD_FLOAT * | fspr, | ||
| UCFD_FLOAT * | dsrc | ||
| ) |
| void rans_serial_upper_sweep | ( | UCFD_INT | neles, |
| UCFD_INT | nface, | ||
| UCFD_INT * | nei_ele, | ||
| UCFD_FLOAT * | fnorm_vol, | ||
| UCFD_FLOAT * | vec_fnorm, | ||
| UCFD_FLOAT * | uptsb, | ||
| UCFD_FLOAT * | rhsb, | ||
| UCFD_FLOAT * | dub, | ||
| UCFD_FLOAT * | diag, | ||
| UCFD_FLOAT * | fspr, | ||
| UCFD_FLOAT * | 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 251 of file lusgs.c.

| void serial_pre_lusgs | ( | UCFD_INT | neles, |
| UCFD_INT | nface, | ||
| UCFD_FLOAT | factor, | ||
| UCFD_FLOAT * | fnorm_vol, | ||
| UCFD_FLOAT * | dt, | ||
| UCFD_FLOAT * | diag, | ||
| UCFD_FLOAT * | 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 43 of file lusgs.c.
