Documentation 6b54b78464
Loading...
Searching...
No Matches
CPreconditioner.hpp File Reference

Classes related to linear preconditioner wrappers. The actual operations are currently implemented mostly by CSysMatrix. More...

#include <functional>
#include "../CConfig.hpp"
#include "../geometry/CGeometry.hpp"
#include "CSysVector.hpp"
#include "CSysMatrix.hpp"

Go to the source code of this file.

Classes

class  CPreconditioner< ScalarType >
 Abstract base class for defining a preconditioning operation. More...
 
class  CIdentityPreconditioner< ScalarType >
 No-op preconditioner used when Krylov solvers run without preconditioning. More...
 
class  CJacobiPreconditioner< ScalarType >
 Specialization of preconditioner that uses CSysMatrix class. More...
 
class  CILUPreconditioner< ScalarType >
 Specialization of preconditioner that uses CSysMatrix class. More...
 
class  CLU_SGSPreconditioner< ScalarType >
 Specialization of preconditioner that uses CSysMatrix class. More...
 
class  CLineletPreconditioner< ScalarType >
 Specialization of preconditioner that uses CSysMatrix class. More...
 
class  CPastixPreconditioner< ScalarType >
 Specialization of preconditioner that uses PaStiX to factorize a CSysMatrix. More...
 
class  CAbstractPreconditioner< ScalarType >
 Applies a std::function as the preconditioning operation. More...
 

Functions

template<class ScalarType , class Apply >
void ApplyPreconditionerOnHost (const CSysVector< ScalarType > &u, CSysVector< ScalarType > &v, Apply &&apply)
 Applies a preconditioner that only has a host implementation to vectors that live on the device: bring the input down, apply, put the result back.
 
template<class ScalarType , class Apply >
void ApplyPreconditionerOnDevice (const CSysVector< ScalarType > &u, CSysVector< ScalarType > &v, bool useCuda, Apply &&apply)
 Mirror of ApplyPreconditionerOnHost: applies a device preconditioner to host vectors.
 

Detailed Description

Classes related to linear preconditioner wrappers. The actual operations are currently implemented mostly by CSysMatrix.

Author
F. Palacios, J. Hicken, T. Economon
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/.