Documentation 6b54b78464
Loading...
Searching...
No Matches
CSysMatrixGPU.cu File Reference

Implementations of Kernels and Functions for Matrix Operations on the GPU. More...

Macros

#define INSTANTIATE_MATRIX(TYPE)
 

Functions

template<class ScalarType , class QuantType , class QuantScaleType , bool Quantized>
__global__ void LU_SGS_ForwardKernel (const su2uint *__restrict__ level_idx, unsigned long level_begin, unsigned long level_size, unsigned long nVar, DeviceLDU< ScalarType > M, const QuantType *__restrict__ q_l, const QuantScaleType *__restrict__ q_scale_l, const ScalarType *__restrict__ invD, const ScalarType *__restrict__ vec, ScalarType *__restrict__ prod)
 Exact forward substitution for the rows of one level, x* = D^{-1}.(b-Lx*)
 
template<class ScalarType , class QuantType , class QuantScaleType , bool Quantized>
__global__ void LU_SGS_BackwardKernel (const su2uint *__restrict__ level_idx, unsigned long level_begin, unsigned long level_size, unsigned long nRows, unsigned long nVar, DeviceLDU< ScalarType > M, const QuantType *__restrict__ q_u, const QuantScaleType *__restrict__ q_scale_u, const ScalarType *__restrict__ invD, ScalarType *__restrict__ prod)
 Exact backward substitution for the rows of one level, x* = D^{-1}.(D.x* - U.x) = x* - D^{-1}.U.x.
 

Detailed Description

Implementations of Kernels and Functions for Matrix Operations on the GPU.

Author
A. Raj, Jesse Li, P. Gomes
Version
8.5.0 "Harrier"

SU2 Project Website: https://su2code.github.io

The SU2 Project is maintained by the SU2 Foundation (http://su2foundation.org)

Copyright 2012-2026, SU2 Contributors (cf. AUTHORS.md)

SU2 is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

SU2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with SU2. If not, see http://www.gnu.org/licenses/.

Macro Definition Documentation

◆ INSTANTIATE_MATRIX

#define INSTANTIATE_MATRIX (   TYPE)
Value:
template void CSysMatrix<TYPE>::HtDTransfer(bool trigger) const; \
CGeometry* geometry, \
const CConfig* config) const; \
CSysVector<TYPE>& prod) const; \
CGeometry* geometry, \
const CConfig* config) const;\
CSysVector<TYPE>& prod) const; \
Main class for defining the problem; basically this class reads the configuration file,...
Definition CConfig.hpp:64
Parent class for defining the geometry of the problem (complete geometry, multigrid agglomerated geom...
Definition CGeometry.hpp:75
Main class for defining block-compressed-row-storage sparse matrices.
Definition CSysMatrix.hpp:256
void HtDTransfer(bool trigger=true) const
Performs the memory copy from host to device.
Definition CSysMatrixGPU.cu:1016
Class for holding and manipulating vectors needed by linear solvers.
Definition CSysVector.hpp:195

Function Documentation

◆ LU_SGS_BackwardKernel()

template<class ScalarType , class QuantType , class QuantScaleType , bool Quantized>
__global__ void LU_SGS_BackwardKernel ( const su2uint *__restrict__  level_idx,
unsigned long  level_begin,
unsigned long  level_size,
unsigned long  nRows,
unsigned long  nVar,
DeviceLDU< ScalarType >  M,
const QuantType *__restrict__  q_u,
const QuantScaleType *__restrict__  q_scale_u,
const ScalarType *__restrict__  invD,
ScalarType *__restrict__  prod 
)

Exact backward substitution for the rows of one level, x* = D^{-1}.(D.x* - U.x) = x* - D^{-1}.U.x.

Note
See notes in IluBackwardKernel for more details

◆ LU_SGS_ForwardKernel()

template<class ScalarType , class QuantType , class QuantScaleType , bool Quantized>
__global__ void LU_SGS_ForwardKernel ( const su2uint *__restrict__  level_idx,
unsigned long  level_begin,
unsigned long  level_size,
unsigned long  nVar,
DeviceLDU< ScalarType >  M,
const QuantType *__restrict__  q_l,
const QuantScaleType *__restrict__  q_scale_l,
const ScalarType *__restrict__  invD,
const ScalarType *__restrict__  vec,
ScalarType *__restrict__  prod 
)

Exact forward substitution for the rows of one level, x* = D^{-1}.(b-Lx*)

Note
See notes in IluForwardKernel for more details.