|
std::vector< MatrixConnectome::CRix > | m_connection_indices |
|
std::vector< mat6, Eigen::aligned_allocator< mat6 > > | m_connection_matrices |
|
std::mutex | m_ConnectionElementLock |
|
int | m_size |
|
std::mutex * | m_MatrixColumnLocks |
| number of 6DOF elements in the system
|
|
MatrixConnectome | m_connectome |
|
mat6 * | m_A_0_diagonal |
|
mat6 * | m_A_1_diagonal |
| the main diagonal blocks of the system matrix
|
|
mat6 * | m_U_0_diagonal |
| first extra-diagonal of the system matrix
|
|
mat6 * | m_U_1_diagonal |
| the main diagonal blocks of the block-tridiagonal UtU decomposition
|
|
bool * | m_set |
| first extra-diagonal of the block-tridiagonal UtU decomposition
|
|
std::vector< ConnectionSolverTask > | m_connection_solver |
|
std::vector< TridiagonalSubSolverTask > | m_TridiagonalSubSolverTask |
|
std::vector< SubMultiplicationTask > | m_SubMultiplicationTask |
| List of asynchronous block-tridiagonal sub domain solvers.
|
|
CoreBoundThreadPool * | m_ThreadPool |
| list of asynchronous matrix sub domain
|
|
- Author
- Jorgen Haavind Jensen
Matrix class for a symmetric 6x6-block-sparse matrix. The data structure and underlying iterative linear solvers are optimized under the assumption that "almost all" of the non zeros are located at or immediately next to the diagonal and that "almost all" of the tridiagonal blocks are filled.
In terms of structural connection topolgy, this translates loosely to "network of slender structures". Most of the connections are between consecutive elements, and the number of T-junctions or X-junctions are neglible
Manages parallellization for matrix inversion and matrix multiplication. Manages concurrency safety for matrix building
- Revision history:
- Q1 2012 JHJ: Initial version. Q1 2014 JHJ: Changed data structure from general pattern to tridiagonal pattern. Q2 2016 JHJ: Update to better handle disjoint element groups