UCFD_SPARSE  v1.0
Documentation
Loading...
Searching...
No Matches
coloredblusgs.c File Reference

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

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

Go to the source code of this file.

Functions

void ns_parallel_pre_blusgs (int neles, int nfvars, int nface, double factor, double *fnorm_vol, double *dt, double *diag, double *fjmat)
 
void rans_parallel_pre_blusgs (int neles, int nvars, int nfvars, int nface, double factor, double betast, double *fnorm_vol, double *uptsb, double *dt, double *tdiag, double *tjmat, double *dsrc)
 
void ns_parallel_block_sweep (int n0, int ne, int neles, int nfvars, int nface, int *nei_ele, int *icolor, int *lcolor, double *fnorm_vol, double *rhsb, double *dub, double *diag, double *fjmat)
 
void rans_parallel_block_sweep (int n0, int ne, int neles, int nvars, int nfvars, int nface, int *nei_ele, int *icolor, int *lcolor, double *fnorm_vol, double *rhsb, double *dub, double *tdiag, double *tjmat)
 
void parallel_update (int neles, int nvars, double *uptsb, double *dub, double *subres)
 

Detailed Description

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

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

Block LU-SGS time integration method with Multi-coloring algorithm.
Multi-thread computation is enabled using <omp.h> header file.
In contrast to LU-SGS method, Block LU-SGS method uses block operator instead of spectral radius.

Note
In case of RANS equations, add rans_parallel_pre_blusgs function right after the ns_parallel_pre_blusgs function.
There is only block_sweep function instead of block_lower_sweep or block_upper_sweep in blusgs.c.
To execute properly, n0 and ne arguments must be input in appropriate order.
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 coloredblusgs.c.

Function Documentation

◆ ns_parallel_block_sweep()

void ns_parallel_block_sweep ( int  n0,
int  ne,
int  neles,
int  nfvars,
int  nface,
int *  nei_ele,
int *  icolor,
int *  lcolor,
double *  fnorm_vol,
double *  rhsb,
double *  dub,
double *  diag,
double *  fjmat 
)

Lower/Upper sweep of Block LU-SGS with multi-coloring algorithm.
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 155 of file coloredblusgs.c.

Here is the call graph for this function:

◆ ns_parallel_pre_blusgs()

void ns_parallel_pre_blusgs ( int  neles,
int  nfvars,
int  nface,
double  factor,
double *  fnorm_vol,
double *  dt,
double *  diag,
double *  fjmat 
)

This function computes diagonal matrices of the implicit operator using multi-thread computing.
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.

Definition at line 38 of file coloredblusgs.c.

Here is the call graph for this function:

◆ parallel_update()

void parallel_update ( int  neles,
int  nvars,
double *  uptsb,
double *  dub,
double *  subres 
)

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

Definition at line 275 of file coloredblusgs.c.

Here is the caller graph for this function:

◆ rans_parallel_block_sweep()

void rans_parallel_block_sweep ( int  n0,
int  ne,
int  neles,
int  nvars,
int  nfvars,
int  nface,
int *  nei_ele,
int *  icolor,
int *  lcolor,
double *  fnorm_vol,
double *  rhsb,
double *  dub,
double *  tdiag,
double *  tjmat 
)

Lower/Upper sweep of Block LU-SGS with multi-coloring algorithm.
This function is used for RANS equations. solution array is stored in dub array.

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

Definition at line 216 of file coloredblusgs.c.

Here is the call graph for this function:

◆ rans_parallel_pre_blusgs()

void rans_parallel_pre_blusgs ( int  neles,
int  nvars,
int  nfvars,
int  nface,
double  factor,
double  betast,
double *  fnorm_vol,
double *  uptsb,
double *  dt,
double *  tdiag,
double *  tjmat,
double *  dsrc 
)

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 turbulent variables in RANS equations.

Definition at line 88 of file coloredblusgs.c.

Here is the call graph for this function: