Documentation 6b54b78464
Loading...
Searching...
No Matches
CSysMatrix.cpp File Reference

Implementation of the sparse matrix class. More...

#include "../../include/linear_algebra/CSysMatrix.inl"
#include "../../include/geometry/CGeometry.hpp"
#include "../../include/linear_algebra/CMatrixInverse.hpp"
#include "../../include/toolboxes/allocation_toolbox.hpp"
#include <cmath>
#include <limits>
#include <type_traits>
#include <vector>

Macros

#define A(I, J)   matrix[(I)*nVar + (J)]
 
#define INSTANTIATE_COMMS(TYPE)
 
#define INSTANTIATE_MATRIX(TYPE)
 

Detailed Description

Implementation of the sparse matrix class.

Author
F. Palacios, A. Bueno, T. Economon, 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

◆ A

#define A (   I,
  J 
)    matrix[(I)*nVar + (J)]

◆ INSTANTIATE_COMMS

#define INSTANTIATE_COMMS (   TYPE)
Value:
template void CSysMatrixComms::Initiate<TYPE>(const CSysVector<TYPE>&, CGeometry*, const CConfig*, MPI_QUANTITIES); \
template void CSysMatrixComms::Complete<TYPE>(CSysVector<TYPE>&, CGeometry*, const CConfig*, MPI_QUANTITIES);
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
Class for holding and manipulating vectors needed by linear solvers.
Definition CSysVector.hpp:195
MPI_QUANTITIES
Vertex-based quantities exchanged in MPI point-to-point communications.
Definition option_structure.hpp:2873

◆ INSTANTIATE_MATRIX

#define INSTANTIATE_MATRIX (   TYPE)
Value:
template class CSysMatrix<TYPE>; \
INSTANTIATE_COMMS(TYPE)
Main class for defining block-compressed-row-storage sparse matrices.
Definition CSysMatrix.hpp:256
void EnforceSolutionAtNode(unsigned long node_i, const OtherType *x_i, CSysVector< OtherType > &b)
Modifies this matrix (A) and a rhs vector (b) such that (A^-1 * b)_i = x_i.
Definition CSysMatrix.cpp:1605
void EnforceZeroProjection(unsigned long node_i, const OtherType *n, CSysVector< OtherType > &b)
Similar to EnforceSolutionAtNode, but for 0 projection in a given direction.
Definition CSysMatrix.cpp:1640
passivedouble su2double
Definition code_config.hpp:181