UCFD_SPARSE  v1.1
Documentation
Loading...
Searching...
No Matches
blusgs.c File Reference

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

#include "blusgs.h"
#include "flux.h"
#include "inverse.h"
#include <stdio.h>
Include dependency graph for blusgs.c:

Go to the source code of this file.

Functions

void ns_serial_pre_blusgs (UCFD_INT neles, UCFD_INT nface, UCFD_FLOAT factor, UCFD_FLOAT *fnorm_vol, UCFD_FLOAT *dt, UCFD_FLOAT *diag, UCFD_FLOAT *fjmat)
 Computes Diagonal matrix for LU-SGS method. More...
 
void rans_serial_pre_blusgs (UCFD_INT neles, UCFD_INT nface, UCFD_FLOAT factor, UCFD_FLOAT *fnorm_vol, UCFD_FLOAT *uptsb, UCFD_FLOAT *dt, UCFD_FLOAT *tdiag, UCFD_FLOAT *tjmat, UCFD_FLOAT *dsrc)
 Computes Diagonal matrix for Block LU-SGS method for RANS equations. More...
 
void ns_serial_block_lower_sweep (UCFD_INT neles, UCFD_INT nface, UCFD_INT *nei_ele, UCFD_FLOAT *fnorm_vol, UCFD_FLOAT *rhsb, UCFD_FLOAT *dub, UCFD_FLOAT *diag, UCFD_FLOAT *fjmat)
 Lower sweep of Block LU-SGS method for Navier-Stokes equations. More...
 
void rans_serial_block_lower_sweep (UCFD_INT neles, UCFD_INT nface, UCFD_INT *nei_ele, UCFD_FLOAT *fnorm_vol, UCFD_FLOAT *rhsb, UCFD_FLOAT *dub, UCFD_FLOAT *tdiag, UCFD_FLOAT *tjmat)
 Lower sweep of Block LU-SGS method for RANS equations. More...
 
void ns_serial_block_upper_sweep (UCFD_INT neles, UCFD_INT nface, UCFD_INT *nei_ele, UCFD_FLOAT *fnorm_vol, UCFD_FLOAT *rhsb, UCFD_FLOAT *dub, UCFD_FLOAT *diag, UCFD_FLOAT *fjmat)
 Upper sweep of Block LU-SGS method for Navier-Stokes equations. More...
 
void rans_serial_block_upper_sweep (UCFD_INT neles, UCFD_INT nface, UCFD_INT *nei_ele, UCFD_FLOAT *fnorm_vol, UCFD_FLOAT *rhsb, UCFD_FLOAT *dub, UCFD_FLOAT *tdiag, UCFD_FLOAT *tjmat)
 Upper sweep of Block LU-SGS method for RANS equations. More...
 
void blusgs_serial_ns_update (UCFD_INT neles, UCFD_FLOAT *uptsb, UCFD_FLOAT *dub, UCFD_FLOAT *subres)
 Updates solution array. More...
 
void blusgs_serial_update (UCFD_INT neles, UCFD_FLOAT *uptsb, UCFD_FLOAT *dub, UCFD_FLOAT *subres)
 Updates solution array. More...
 

Detailed Description

Block LU-SGS time integration method for unstructured grid.

======================================================================================================================

Block LU-SGS time integration method (Single thread only).
In contrast to LU-SGS method, Block LU-SGS method uses block operator instead of spectral radius.
Computation process is same with LU-SGS.
For more information, refer to the lusgs.c.

Note
In case of RANS equations, add rans_serial_pre_blusgs function right after the ns_serial_pre_blusgs function.
Also, add rans_serial_{}_sweep function right after the ns_serial_{}_sweep function.
Be aware that ns and rans pre_blusgs/sweep functions must be paired with each sweep step.
Author
Date
Nov 2024
Version
1.0
Copyright
Copyright (c) 2024, Namhyoung Kim and Jin Seok Park, Inha University, All rights reserved.
License
This project is release under the terms of the MIT License (see LICENSE file).

Definition in file blusgs.c.

Function Documentation

◆ blusgs_serial_ns_update()

void blusgs_serial_ns_update ( UCFD_INT  neles,
UCFD_FLOAT uptsb,
UCFD_FLOAT dub,
UCFD_FLOAT subres 
)

Updates solution array.

solution array is updated by adding \(\Delta Q\).

Definition at line 386 of file blusgs.c.

◆ blusgs_serial_update()

void blusgs_serial_update ( UCFD_INT  neles,
UCFD_FLOAT uptsb,
UCFD_FLOAT dub,
UCFD_FLOAT subres 
)

Updates solution array.

solution array is updated by adding \(\Delta Q\).

Definition at line 406 of file blusgs.c.

◆ ns_serial_block_lower_sweep()

void ns_serial_block_lower_sweep ( UCFD_INT  neles,
UCFD_INT  nface,
UCFD_INT nei_ele,
UCFD_FLOAT fnorm_vol,
UCFD_FLOAT rhsb,
UCFD_FLOAT dub,
UCFD_FLOAT diag,
UCFD_FLOAT fjmat 
)

Lower sweep of Block 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.

Note
The last argument array, fjmat is NOT identical with ns_serial_pre_blusgs function.
For more details, refer to the Block LU-SGS in the document.

Definition at line 153 of file blusgs.c.

Here is the call graph for this function:

◆ ns_serial_block_upper_sweep()

void ns_serial_block_upper_sweep ( UCFD_INT  neles,
UCFD_INT  nface,
UCFD_INT nei_ele,
UCFD_FLOAT fnorm_vol,
UCFD_FLOAT rhsb,
UCFD_FLOAT dub,
UCFD_FLOAT diag,
UCFD_FLOAT fjmat 
)

Upper sweep of Block LU-SGS method for Navier-Stokes equations.

By processing upper sweep, next sub-iteration solution \(\Delta Q^(k+1)\) 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.

Note
The last argument array, fjmat is NOT identical with ns_serial_pre_blusgs function.
For more details, refer to the Block LU-SGS in the document.

Definition at line 272 of file blusgs.c.

Here is the call graph for this function:

◆ ns_serial_pre_blusgs()

void ns_serial_pre_blusgs ( UCFD_INT  neles,
UCFD_INT  nface,
UCFD_FLOAT  factor,
UCFD_FLOAT fnorm_vol,
UCFD_FLOAT dt,
UCFD_FLOAT diag,
UCFD_FLOAT fjmat 
)

Computes Diagonal matrix for LU-SGS method.

This function computes diagonal matrices of the implicit operator. In Block LU-SGS method, implicit operator is approximated with block operator. Diagonal matrices is composed of block operator matrix, which size is n-by-n. n is the number of conservative variables in Navier-Stokes equations, or the number of turbulent variables in RANS equations.

Definition at line 39 of file blusgs.c.

Here is the call graph for this function:

◆ rans_serial_block_lower_sweep()

void rans_serial_block_lower_sweep ( UCFD_INT  neles,
UCFD_INT  nface,
UCFD_INT nei_ele,
UCFD_FLOAT fnorm_vol,
UCFD_FLOAT rhsb,
UCFD_FLOAT dub,
UCFD_FLOAT tdiag,
UCFD_FLOAT tjmat 
)

Lower sweep of Block LU-SGS method for RANS equations.

Lower sweep of Block LU-SGS.
This function is used for RANS equations. solution array is stored in dub array.

Note
The last argument array, tjmat is NOT identical with ns_serial_pre_blusgs function.
For more details, refer to the Block LU-SGS in the document.

Definition at line 212 of file blusgs.c.

Here is the call graph for this function:

◆ rans_serial_block_upper_sweep()

void rans_serial_block_upper_sweep ( UCFD_INT  neles,
UCFD_INT  nface,
UCFD_INT nei_ele,
UCFD_FLOAT fnorm_vol,
UCFD_FLOAT rhsb,
UCFD_FLOAT dub,
UCFD_FLOAT tdiag,
UCFD_FLOAT tjmat 
)

Upper sweep of Block LU-SGS method for RANS equations.

Upper sweep of Block LU-SGS.
This function is used for RANS equations. solution array is stored in dub array.

Note
The last argument array, tjmat is NOT identical with ns_serial_pre_blusgs function.
For more details, refer to the Block LU-SGS in the document.

Definition at line 331 of file blusgs.c.

Here is the call graph for this function:

◆ rans_serial_pre_blusgs()

void rans_serial_pre_blusgs ( UCFD_INT  neles,
UCFD_INT  nface,
UCFD_FLOAT  factor,
UCFD_FLOAT fnorm_vol,
UCFD_FLOAT uptsb,
UCFD_FLOAT dt,
UCFD_FLOAT tdiag,
UCFD_FLOAT tjmat,
UCFD_FLOAT dsrc 
)

Computes Diagonal matrix for Block LU-SGS method for RANS equations.

This function computes diagonal matrices of the implicit operator of RANS equations. In Block LU-SGS method, implicit operator is approximated with block operator. Diagonal matrices is composed of block operator matrix, which size is n-by-n. n is the number of conservative variables in Navier-Stokes equations, or the number of turbulent variables in RANS equations.

Definition at line 90 of file blusgs.c.

Here is the call graph for this function: