Marine systems simulation
|
#include <MatrixConnectome.h>
Classes | |
struct | colored_segment |
struct | CRix |
struct | segment |
Public Member Functions | |
MatrixConnectome (int drop_size) | |
void | Update (const bool *diagonal_connection, int num, std::vector< CRix > extra_connections) |
void | set_drop_size (int drop_size) |
Public Attributes | |
std::vector< segment > | m_tridiag_segments |
std::vector< segment > | m_null_tridiag_segments |
std::vector< colored_segment > | all_segments |
std::vector< int > | color_groups |
Protected Member Functions | |
bool | contains (const segment &o, const segment &i) |
segment | drop_expand (const bool *diagonal_connection, int num, int expand_center) |
Protected Attributes | |
int | m_drop_size |
Matrix utility class for computing connection patterns in a block-sparse, almost-block-tridiagonal matrix.
1) All consecutive tridiagonal connected elements are grouped.
2) To form connection matrices: a) All sporadic connections are projected down on their respective tridiagonal segments, and expanded up to the drop size or tridiagnal segment end. b) All connection matrices that are either (1) overlapping, or (2) touching within a tridiagonal segment, are merged and grouped.
3) All tridiagonal segments that are completely contained in a connection matrix are removed.