Linear Algebra Tools

template<typename TM, typename TIM, typename S>
void BasicTools::inv22(TM &m, TIM &minv, S &det)
template<typename TM, typename TIM, typename S>
void BasicTools::inv33(TM &m, TIM &minv, S &det)

Warning

doxygenfunction: Unable to resolve function “BasicTools::GetInv_Jacobian_Det” with arguments (MapMatrixDDD&, MatrixDDD&, int&, MatrixDDD&, double&, MatrixDDD&) in doxygen xml output for project “BasicToolsCpp” from directory: ./xml/. Potential matches:

- void GetInv_Jacobian_Det(MapMatrixDDD &valdphidxi, const Eigen::Ref<const MatrixDD3> &xcoor, int &Dimensionality, MatrixDDD &Jack, double &Jdet, Eigen::ColPivHouseholderQR<MatrixDDD> &Jinv)
- void GetInv_Jacobian_Det(MapMatrixDDD &valdphidxi, const Eigen::Ref<const MatrixDDD> &xcoor, int &Dimensionality, MatrixDDD &Jack, double &Jdet, Eigen::ColPivHouseholderQR<MatrixDDD> &Jinv)

Warning

doxygenfunction: Unable to resolve function “BasicTools::GetInv_Jacobian_Det” with arguments (MapMatrixDDD&, MatrixDD3&, int&, MatrixDDD&, double&, Eigen::ColPivHouseholderQR<MatrixDDD>&) in doxygen xml output for project “BasicToolsCpp” from directory: ./xml/. Potential matches:

- void GetInv_Jacobian_Det(MapMatrixDDD &valdphidxi, const Eigen::Ref<const MatrixDD3> &xcoor, int &Dimensionality, MatrixDDD &Jack, double &Jdet, Eigen::ColPivHouseholderQR<MatrixDDD> &Jinv)
- void GetInv_Jacobian_Det(MapMatrixDDD &valdphidxi, const Eigen::Ref<const MatrixDDD> &xcoor, int &Dimensionality, MatrixDDD &Jack, double &Jdet, Eigen::ColPivHouseholderQR<MatrixDDD> &Jinv)
void BasicTools::GetNormal(const int &SpaceDim, const int &elementDim, MatrixDDD &Jack, MatrixD31 &Normal)
struct EigenSolvers

Public Types

typedef Eigen::ConjugateGradient<SpMatD, Upper | Lower> EigenSpCG
typedef Eigen::SparseLU<SpMatD> EigenSpLU
typedef Eigen::SparseQR<SpMatD, Eigen::COLAMDOrdering<int>> EigenSpQR
typedef Eigen::BiCGSTAB<SpMatDR> EigenSpBiCGSTAB

Public Functions

inline EigenSolvers()
inline void Clean()
inline void ForceNumberOfThreads(int n)
inline void SetSolverType(int i)
inline void SetOp(const CBasicIndexType &sizem, const CBasicIndexType &sizen, const CBasicIndexType &ev_size, CBasicFloatType *ev, CBasicIndexType *ei, CBasicIndexType *ej, const double &tolerance)
inline void Solve(CBasicIndexType size, CBasicFloatType *_rhs, CBasicFloatType *_sol)
inline CBasicIndexType GetSPQRRank()
inline CBasicIndexType GetSPQR_R_nonZeros()
inline void GetSPQR_R(CBasicIndexType *sizei, CBasicIndexType *sizej, CBasicFloatType *ev, CBasicIndexType *ei, CBasicIndexType *ej)
inline void GetSPQR_P(CBasicIndexType *p)
inline CBasicIndexType GetSPQR_Q_nonZeros()
inline void GetSPQR_Q(CBasicIndexType *sizei, CBasicIndexType *sizej, CBasicFloatType *ev, CBasicIndexType *ei, CBasicIndexType *ej)

Public Members

EIGEN_MAKE_ALIGNED_OPERATOR_NEW std::unique_ptr< EigenSpCG > cgSolver
std::unique_ptr<EigenSpLU> luSolver
std::unique_ptr<EigenSpQR> spqrSolver
std::unique_ptr<EigenSpBiCGSTAB> bicgstabSolver
std::unique_ptr<SpMatD> A
std::unique_ptr<SpMatDR> A_rowmajor
int solverType
Eigen::SparseMatrix<double> Q
Eigen::SparseMatrix<double> R

Numpy like operators

MatrixID1 BasicTools::NonZero(const MatrixBD1 &input)
MatrixID1 BasicTools::Intersect1D(const MatrixID1 &A, const MatrixID1 &B)
MatrixID1 BasicTools::Union1D(const MatrixID1 &A, const MatrixID1 &B)