MFEM v4.9.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::STable Class Reference

#include <table.hpp>

Inheritance diagram for mfem::STable:
[legend]
Collaboration diagram for mfem::STable:
[legend]

Public Member Functions

 STable (int dim, int connections_per_row=3)
 Creates table with fixed number of connections.
 
int operator() (int i, int j) const
 
int Push (int i, int j)
 
 ~STable ()
 Destroys STable.
 
- Public Member Functions inherited from mfem::Table
 Table ()
 Creates an empty table.
 
 Table (const Table &table1, const Table &table2, int offset2)
 Merge constructor: combine two tables into one table.
 
 Table (const Table &table1, const Table &table2, int offset2, const Table &table3, int offset3)
 Merge constructor: combine three tables into one table.
 
 Table (int dim, int connections_per_row=3)
 Create a table with an upper limit for the number of connections.
 
 Table (int nrows, Array< Connection > &list)
 Create a table from a list of connections, see MakeFromList().
 
 Table (int nrows, int *partitioning)
 Create a table with one entry per row with column indices given by partitioning.
 
void SetSize (int dim, int connections_per_row)
 Set the size and the number of connections for the table.
 
void SetDims (int rows, int nnz)
 Set the rows and the number of all connections for the table.
 
int Size () const
 Returns the number of TYPE I elements.
 
int Size_of_connections () const
 Returns the number of connections in the table.
 
int operator() (int i, int j) const
 Returns index of the connection between element i of TYPE I and element j of TYPE II.
 
void GetRow (int i, Array< int > &row) const
 Return row i in array row (the Table must be finalized)
 
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
 
Memory< int > & GetIMemory ()
 
Memory< int > & GetJMemory ()
 
const Memory< int > & GetIMemory () const
 
const Memory< int > & GetJMemory () const
 
const int * ReadI (bool on_dev=true) const
 
int * WriteI (bool on_dev=true)
 
int * ReadWriteI (bool on_dev=true)
 
const int * HostReadI () const
 
int * HostWriteI ()
 
int * HostReadWriteI ()
 
const int * ReadJ (bool on_dev=true) const
 
int * WriteJ (bool on_dev=true)
 
int * ReadWriteJ (bool on_dev=true)
 
const int * HostReadJ () const
 
int * HostWriteJ ()
 
int * ReadWriteJ ()
 
void SortRows ()
 Sort the column (TYPE II) indices in each row.
 
void SetIJ (int *newI, int *newJ, int newsize=-1)
 Replace the I and J arrays with the given newI and newJ arrays.
 
int Push (int i, int j)
 Establish connection between element i and element j in the table.
 
void Finalize ()
 Finalize the table initialization.
 
void MakeFromList (int nrows, const Array< Connection > &list)
 Create the table from a list of connections {(from, to)}, where 'from' is a TYPE I index and 'to' is a TYPE II index.
 
int Width () const
 Returns the number of TYPE II elements (after Finalize() is called).
 
void LoseData ()
 Releases ownership of and null-ifies the data.
 
void Print (std::ostream &out=mfem::out, int width=4) const
 Prints the table to the stream out.
 
void PrintMatlab (std::ostream &out) const
 
void Save (std::ostream &out) const
 
void Load (std::istream &in)
 
void Copy (Table &copy) const
 
void Swap (Table &other)
 
void Clear ()
 
std::size_t MemoryUsage () const
 
void MakeI (int nrows)
 
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 ()
 

Additional Inherited Members

- Protected Attributes inherited from mfem::Table
int size
 The number of TYPE I elements.
 
Array< int > I
 The length of the I array is 'size + 1',.
 
Array< int > J
 The length of the J array is equal to the number of connections between TYPE I and TYPE II elements.
 

Detailed Description

Data type STable. STable is similar to Table, but it's for symmetric connectivity, i.e. TYPE I is equivalent to TYPE II. In the first dimension we put the elements with smaller index.

Definition at line 221 of file table.hpp.

Constructor & Destructor Documentation

◆ STable()

mfem::STable::STable ( int dim,
int connections_per_row = 3 )

Creates table with fixed number of connections.

Definition at line 583 of file table.cpp.

◆ ~STable()

mfem::STable::~STable ( )
inline

Destroys STable.

Definition at line 240 of file table.hpp.

Member Function Documentation

◆ operator()()

int mfem::STable::operator() ( int i,
int j ) const

Returns index of the connection between element i of TYPE I and element j of TYPE II. If there is no connection between element i and element j established in the table, then the return value is -1.

Definition at line 587 of file table.cpp.

◆ Push()

int mfem::STable::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().

Definition at line 599 of file table.cpp.


The documentation for this class was generated from the following files: