MFEM
v3.0
|
#include <table.hpp>
Public Member Functions | |
Table () | |
Creates an empty table. More... | |
Table (int dim, int connections_per_row=3) | |
Create a table with a fixed number of connections. More... | |
Table (int nrows, int *partitioning) | |
void | MakeI (int nrows) |
Next 7 methods are used together with the default constructor. More... | |
void | AddAColumnInRow (int r) |
void | AddColumnsInRow (int r, int ncol) |
void | MakeJ () |
void | AddConnection (int r, int c) |
void | AddConnections (int r, const int *c, int nc) |
void | ShiftUpI () |
void | SetSize (int dim, int connections_per_row) |
Set the size and the number of connections for the table. More... | |
void | SetDims (int rows, int nnz) |
int | Size () const |
Returns the number of TYPE I elements. More... | |
int | Size_of_connections () const |
int | operator() (int i, int j) const |
void | GetRow (int i, Array< int > &row) const |
Return row i in array row (the Table must be finalized) More... | |
int | RowSize (int i) const |
const int * | GetRow (int i) const |
int * | GetRow (int i) |
int * | GetI () |
int * | GetJ () |
const int * | GetI () const |
const int * | GetJ () const |
void | SetIJ (int *newI, int *newJ, int newsize=-1) |
int | Push (int i, int j) |
void | Finalize () |
int | Width () const |
Returns the number of TYPE II elements (after Finalize() is called). More... | |
void | LoseData () |
Call this if data has been stolen. More... | |
void | Print (std::ostream &out=std::cout, int width=4) const |
Prints the table to stream out. More... | |
void | PrintMatlab (std::ostream &out) const |
void | Save (std::ostream &out) const |
void | Copy (Table ©) const |
void | Swap (Table &other) |
void | Clear () |
~Table () | |
Destroys Table. More... | |
Protected Attributes | |
int | size |
size is the number of TYPE I elements. More... | |
int * | I |
int * | J |
Data type Table. Table stores the connectivity of elements of TYPE I to elements of TYPE II, for example, it may be Element-To-Face connectivity table, etc.
|
explicit |
mfem::Table::Table | ( | int | nrows, |
int * | partitioning | ||
) |
|
inline |
void mfem::Table::AddConnections | ( | int | r, |
const int * | c, | ||
int | nc | ||
) |
void mfem::Table::Finalize | ( | ) |
Finalize the table initialization. The function may be called only once, after the table has been initialized, in order to densen array J (by getting rid of -1's in array J). Calling this function will "freeze" the table and function Push will work no more. Note: The table is functional even without calling Finalize().
void mfem::Table::GetRow | ( | int | i, |
Array< int > & | row | ||
) | const |
|
inline |
void mfem::Table::MakeI | ( | int | nrows | ) |
int mfem::Table::operator() | ( | int | i, |
int | j | ||
) | const |
void mfem::Table::Print | ( | std::ostream & | out = std::cout , |
int | width = 4 |
||
) | const |
int mfem::Table::Push | ( | int | i, |
int | j | ||
) |
Establish connection between element i and element j in the table. The return value is the index of the connection. It returns -1 if it fails to establish the connection. Possibilities are there is not enough memory on row i to establish connection to j, an attempt to establish new connection after calling Finalize().
void mfem::Table::SetDims | ( | int | rows, |
int | nnz | ||
) |
void mfem::Table::SetIJ | ( | int * | newI, |
int * | newJ, | ||
int | newsize = -1 |
||
) |
void mfem::Table::SetSize | ( | int | dim, |
int | connections_per_row | ||
) |
|
inline |
|
inline |
Returns the number of connections in the table. If Finalize() is not called, it returns the number of possible connections established by the used constructor. Otherwise, it is exactly the number of established connections before calling Finalize().
int mfem::Table::Width | ( | ) | const |
Returns the number of TYPE II elements (after Finalize() is called).
|
protected |
|
protected |