PolyFEM
Loading...
Searching...
No Matches
MatrixUtils.hpp File Reference
#include <polyfem/utils/Types.hpp>
#include <Eigen/Dense>
#include <Eigen/Sparse>
Include dependency graph for MatrixUtils.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  polyfem
 
namespace  polyfem::utils
 

Functions

void polyfem::utils::show_matrix_stats (const Eigen::MatrixXd &M)
 
template<typename T >
polyfem::utils::matrix_inner_product (const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > &A, const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > &B)
 
template<typename T , int rows, int cols, int option, int maxRow, int maxCol>
polyfem::utils::determinant (const Eigen::Matrix< T, rows, cols, option, maxRow, maxCol > &mat)
 
template<typename T >
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic, 0, 3, 3 > polyfem::utils::inverse (const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic, 0, 3, 3 > &mat)
 
Eigen::SparseMatrix< double > polyfem::utils::sparse_identity (int rows, int cols)
 
Eigen::VectorXd polyfem::utils::flatten (const Eigen::MatrixXd &X)
 Flatten rowwises.
 
Eigen::MatrixXd polyfem::utils::unflatten (const Eigen::VectorXd &x, int dim)
 Unflatten rowwises, so every dim elements in x become a row.
 
void polyfem::utils::vector2matrix (const Eigen::VectorXd &vec, Eigen::MatrixXd &mat)
 
Eigen::SparseMatrix< double > polyfem::utils::lump_matrix (const Eigen::SparseMatrix< double > &M)
 Lump each row of a matrix into the diagonal.
 
void polyfem::utils::full_to_reduced_matrix (const int full_size, const int reduced_size, const std::vector< int > &removed_vars, const StiffnessMatrix &full, StiffnessMatrix &reduced)
 Map a full size matrix to a reduced one by dropping rows and columns.
 
Eigen::MatrixXd polyfem::utils::reorder_matrix (const Eigen::MatrixXd &in, const Eigen::VectorXi &in_to_out, int out_blocks=-1, const int block_size=1)
 Reorder row blocks in a matrix.
 
Eigen::MatrixXd polyfem::utils::unreorder_matrix (const Eigen::MatrixXd &out, const Eigen::VectorXi &in_to_out, int in_blocks=-1, const int block_size=1)
 Undo the reordering of row blocks in a matrix.
 
Eigen::MatrixXi polyfem::utils::map_index_matrix (const Eigen::MatrixXi &in, const Eigen::VectorXi &index_mapping)
 Map the entrys of an index matrix to new indices.
 
template<typename DstMat , typename SrcMat >
void polyfem::utils::append_rows (DstMat &dst, const SrcMat &src)
 
template<typename DstMat >
void polyfem::utils::append_rows_of_zeros (DstMat &dst, const size_t n_zero_rows)