|
| | LinearSystem (const SystemMatrixType &matrix, const Vector< RHSValueType > &rhs, const BoundaryMatrixType &offDiagonalMatrix, const BoundaryMatrixType &boundaryMatrix, const Vector< RHSValueType > &boundaryRhs, std::shared_ptr< MeshIterationStrategy > strategy=std::make_shared< FaceBasedIterator >()) |
| |
| | LinearSystem (const SystemMatrixType &matrix, const Vector< RHSValueType > &rhs, const BoundaryMatrixType &boundaryMatrix, const Vector< RHSValueType > &boundaryRhs, std::shared_ptr< MeshIterationStrategy > strategy=std::make_shared< FaceBasedIterator >()) |
| |
| | LinearSystem (const LinearSystem &ls) |
| |
| | ~LinearSystem ()=default |
| |
| SystemMatrixType & | matrix () |
| |
| const SystemMatrixType & | matrix () const |
| |
| BoundaryMatrixType & | offDiagonalMatrix () |
| |
| const BoundaryMatrixType & | offDiagonalMatrix () const |
| |
| BoundaryMatrixType & | boundaryMatrix () |
| |
| const BoundaryMatrixType & | boundaryMatrix () const |
| |
| Vector< RHSValueType > & | rhs () |
| |
| const Vector< RHSValueType > & | rhs () const |
| |
| Vector< RHSValueType > & | boundaryRhs () |
| |
| const Vector< RHSValueType > & | boundaryRhs () const |
| |
| std::shared_ptr< Vector< RHSValueType > > & | faceFluxCorrection () |
| |
| const std::shared_ptr< Vector< RHSValueType > > & | faceFluxCorrection () const |
| |
| bool | keepFaceFluxCorrection () const |
| |
| void | keepFaceFluxCorrection (bool keep) |
| |
| const std::shared_ptr< Vector< RHSValueType > > & | diagCmpt () const |
| | Per-component diagonal correction for implicit transform BCs (slip/symmetry). nullptr when no implicit transform patch is present (the fast multi-RHS path).
|
| |
| Vector< RHSValueType > & | ensureDiagCmpt () |
| | Lazily allocate (zero-initialised, one RHSValueType per cell) and return the per-component diagonal-correction store, so the Laplacian assembly can accumulate the implicit transform-BC contribution into it.
|
| |
| LinearSystem< MatrixValueType, RHSValueType, SystemMatrixType, BoundaryMatrixType > | copyToExecutor (Executor exec) const override |
| |
| void | reset () |
| |
| LinearSystemView< RHSValueType, MatrixView< MatrixValueType, SparsityView< typename SystemMatrixType::MatrixSparsityType::SparsityIndexType > > > | view () &&=delete |
| |
| LinearSystemView< RHSValueType, MatrixView< MatrixValueType, SparsityView< typename SystemMatrixType::MatrixSparsityType::SparsityIndexType > > > | view () const &&=delete |
| |
| LinearSystemView< RHSValueType, MatrixView< MatrixValueType, SparsityView< LinearSystemIndexType > > > | view () & |
| |
| std::shared_ptr< const FaceToMatrixAddress > | faceToMatrixAddress () const |
| |
| LinearSystemView< const RHSValueType, const MatrixView< MatrixValueType, SparsityView< const LinearSystemIndexType > > > | view () const & |
| |
| std::shared_ptr< MeshIteratorContext > | getMeshIterator () |
| |
| const Executor & | exec () const |
| |
| virtual | ~SupportsCopyTo ()=default |
| |
| HostType | copyToHost () const |
| |
template<typename MatrixValueType, typename RHSValueType = MatrixValueType, typename SystemMatrixType = CSRMatrix<MatrixValueType, localIdx>, typename BoundaryMatrixType = COOMatrix<MatrixValueType, localIdx>>
class NeoN::la::LinearSystem< MatrixValueType, RHSValueType, SystemMatrixType, BoundaryMatrixType >
A class representing a linear system of equations.
The LinearSystem class provides functionality to store and manipulate a linear system of equations. It supports the storage of the coefficient matrix and the right-hand side vector, as well as the solution vector.
- Template Parameters
-
| MatrixValueType | The value type of the system and boundary matrix coefficients. |
| RHSValueType | The value type of the right-hand side and boundary rhs vectors. Defaults to MatrixValueType, but may differ (e.g. scalar matrix with Vec3 rhs for segregated vector solves). |
| SystemMatrixType | The sparse matrix type used for the system matrix (default: CSRMatrix<MatrixValueType, localIdx>). |
| BoundaryMatrixType | The sparse matrix type used for boundary and off-diagonal matrices (default: COOMatrix<MatrixValueType, localIdx>). |
Definition at line 77 of file linearSystem.hpp.
template<typename MatrixValueType , typename RHSValueType = MatrixValueType, typename SystemMatrixType = CSRMatrix<MatrixValueType, localIdx>, typename BoundaryMatrixType = COOMatrix<MatrixValueType, localIdx>>
| const std::shared_ptr< Vector< RHSValueType > > & NeoN::la::LinearSystem< MatrixValueType, RHSValueType, SystemMatrixType, BoundaryMatrixType >::diagCmpt |
( |
| ) |
const |
|
inline |
Per-component diagonal correction for implicit transform BCs (slip/symmetry). nullptr when no implicit transform patch is present (the fast multi-RHS path).
Definition at line 198 of file linearSystem.hpp.
template<typename MatrixValueType , typename RHSValueType = MatrixValueType, typename SystemMatrixType = CSRMatrix<MatrixValueType, localIdx>, typename BoundaryMatrixType = COOMatrix<MatrixValueType, localIdx>>
Lazily allocate (zero-initialised, one RHSValueType per cell) and return the per-component diagonal-correction store, so the Laplacian assembly can accumulate the implicit transform-BC contribution into it.
Definition at line 206 of file linearSystem.hpp.