NeoN
A framework for CFD software
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Functions
matrix.hpp File Reference
#include "NeoN/core/vector/vector.hpp"
#include "NeoN/linearAlgebra/cooSparsityPattern.hpp"
#include "NeoN/linearAlgebra/csrSparsityPattern.hpp"
#include "NeoN/linearAlgebra/faceToMatrixAddress.hpp"

Go to the source code of this file.

Classes

struct  NeoN::la::MatrixView< ValueType, SparsityViewType >
 A view struct to allow easy read/write on all executors. More...
 
class  NeoN::la::Matrix< ValueType, SparsityType >
 Sparse matrix class with compact storage by row (CSR) format. More...
 

Namespaces

namespace  NeoN
 Integer types used throughout NeoN.
 
namespace  NeoN::la
 

Typedefs

template<typename ValueType , typename IndexType >
using NeoN::la::CSRMatrix = Matrix< ValueType, la::CsrSparsityPattern< IndexType > >
 
template<typename ValueType , typename IndexType >
using NeoN::la::COOMatrix = Matrix< ValueType, la::CooSparsityPattern< IndexType > >
 

Functions

template<typename ValueType , typename IndexType >
Vector< ValueType > NeoN::la::upper (const CSRMatrix< ValueType, IndexType > &)
 extract the upper triangular of the matrix
 
Vector< scalarNeoN::la::scaledInverseDiag (const CSRMatrix< Vec3, localIdx > &, const Vector< scalar > &)
 computes the inverted diagonal of a matrix and scales it by a, ie. a*D^-1
 
void NeoN::la::scaledInverseDiag (const CSRMatrix< Vec3, localIdx > &mtx, const Vector< scalar > &a, Vector< scalar > &out)
 
Vector< scalarNeoN::la::scaledInverseDiag (const CSRMatrix< Vec3, localIdx > &, const FaceToMatrixAddress &mi, const Vector< scalar > &)
 computes the inverted diagonal of a matrix and scales it by a, ie. a*D^-1
 
void NeoN::la::scaledInverseDiag (const CSRMatrix< Vec3, localIdx > &mtx, const FaceToMatrixAddress &mi, const Vector< scalar > &a, Vector< scalar > &out)
 
Vector< scalarNeoN::la::scaledInverseDiag (const CSRMatrix< scalar, localIdx > &, const FaceToMatrixAddress &mi, const Vector< scalar > &)
 scalar-matrix variant of scaledInverseDiag for the segregated vector-solve form
 
void NeoN::la::scaledInverseDiag (const CSRMatrix< scalar, localIdx > &mtx, const FaceToMatrixAddress &mi, const Vector< scalar > &a, Vector< scalar > &out)
 
template<unsigned int I>
auto NeoN::la::getComponent (const CSRMatrix< Vec3, localIdx > &in)
 
void NeoN::la::negLUx (const CSRMatrix< Vec3, localIdx > &mtx, const Vector< Vec3 > &a, const Vector< Vec3 > &b, const Vector< scalar > &rAU, const Vector< scalar > &vol, Vector< Vec3 > &out)
 computes out = -(L+U) x
 
void NeoN::la::scaledInvDiagNegLUx (const CSRMatrix< Vec3, localIdx > &mtx, const Vector< Vec3 > &a, const Vector< Vec3 > &b, const Vector< scalar > &vol, Vector< scalar > &rAU, Vector< Vec3 > &out)
 computes out = -(L+U) x
 
void NeoN::la::scaledInvDiagNegLUx (const CSRMatrix< scalar, localIdx > &mtx, const Vector< Vec3 > &a, const Vector< Vec3 > &b, const Vector< scalar > &vol, Vector< scalar > &rAU, Vector< Vec3 > &out)
 scalar-matrix / Vec3-rhs variant of scaledInvDiagNegLUx