atlas
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
atlas::mesh::IrregularConnectivityImpl Class Reference
Inheritance diagram for atlas::mesh::IrregularConnectivityImpl:
Inheritance graph
[legend]
Collaboration diagram for atlas::mesh::IrregularConnectivityImpl:
Collaboration graph
[legend]

Public Types

typedef ConnectivityRow Row
 
typedef void * ctxt_t
 
typedef void(* callback_t) (ctxt_t)
 

Public Member Functions

 IrregularConnectivityImpl (const std::string &name="")
 Construct connectivity table that needs resizing a-posteriori Data is owned.
 
 IrregularConnectivityImpl (idx_t values[], idx_t rows, idx_t displs[], idx_t counts[])
 Construct connectivity table wrapping existing raw data. More...
 
 IrregularConnectivityImpl (eckit::Stream &)
 Construct a mesh from a Stream (serialization)
 
const std::string name () const
 Name associated to this Connetivity.
 
void rename (const std::string &name)
 Rename this Connectivity.
 
ATLAS_HOST_DEVICE idx_t rows () const
 Number of rows in the connectivity table.
 
ATLAS_HOST_DEVICE idx_t cols (idx_t row_idx) const
 Number of columns for specified row in the connectivity table.
 
ATLAS_HOST_DEVICE idx_t maxcols () const
 Maximum value for number of columns over all rows.
 
ATLAS_HOST_DEVICE idx_t mincols () const
 Minimum value for number of columns over all rows.
 
ATLAS_HOST_DEVICE idx_t operator() (idx_t row_idx, idx_t col_idx) const
 Access to connectivity table elements for given row and column The returned index has base 0 regardless if ATLAS_HAVE_FORTRAN is defined. More...
 
idx_t size () const
 
ATLAS_HOST_DEVICE idx_t missing_value () const
 
ATLAS_HOST_DEVICE Row row (idx_t row_idx) const
 
void set (idx_t row_idx, const idx_t column_values[])
 Modify row with given values. Values must be given with base 0.
 
void set (idx_t row_idx, idx_t col_idx, const idx_t value)
 Modify (row,col) with given value. Value must be given with base 0.
 
virtual void resize (idx_t old_size, idx_t size, bool initialize, const idx_t values[], bool fortran_array)
 Resize connectivity. More...
 
virtual void add (idx_t rows, idx_t cols, const idx_t values[], bool fortran_array=false)
 Resize connectivity, and add given rows. More...
 
virtual void add (idx_t rows, idx_t cols)
 Resize connectivity, and add given rows with missing values. More...
 
virtual void add (idx_t rows, const idx_t cols[])
 Resize connectivity, and add given rows with missing values. More...
 
virtual void add (const BlockConnectivityImpl &block)
 Resize connectivity, and copy from a BlockConnectivity.
 
virtual void insert (idx_t position, idx_t rows, idx_t cols, const idx_t values[], bool fortran_array=false)
 Resize connectivity, and insert given rows. More...
 
virtual void insert (idx_t position, idx_t rows, idx_t cols)
 Resize connectivity, and insert given rows with missing values. More...
 
virtual void insert (idx_t position, idx_t rows, const idx_t cols[])
 Resize connectivity, and insert given rows with missing values. More...
 
virtual void clear ()
 
virtual size_t footprint () const
 
idx_t displs (const idx_t row) const
 
void dump (std::ostream &os) const
 
virtual void encode (eckit::Stream &s) const
 
virtual void decode (eckit::Stream &s)
 

Protected Member Functions

bool owns ()
 
const idx_tdispls () const
 
const idx_tcounts () const
 
void encode_ (eckit::Stream &) const
 Serialization to Stream.
 
void decode_ (eckit::Stream &)
 Serialization from Stream.
 

Protected Attributes

array::SVector< idx_tvalues_
 
array::SVector< idx_tdispls_
 
array::SVector< idx_tcounts_
 
idx_t missing_value_
 
idx_t rows_
 
idx_t maxcols_
 
idx_t mincols_
 

Friends

class ConnectivityPrivateAccess
 
std::ostream & operator<< (std::ostream &os, const IrregularConnectivityImpl &p)
 
eckit::Stream & operator<< (eckit::Stream &s, const IrregularConnectivityImpl &x)
 
eckit::Stream & operator>> (eckit::Stream &s, IrregularConnectivityImpl &x)
 

Constructor & Destructor Documentation

◆ IrregularConnectivityImpl()

atlas::mesh::IrregularConnectivityImpl::IrregularConnectivityImpl ( idx_t  values[],
idx_t  rows,
idx_t  displs[],
idx_t  counts[] 
)

Construct connectivity table wrapping existing raw data.

No resizing can be performed as data is not owned.

Member Function Documentation

◆ add() [1/3]

void atlas::mesh::IrregularConnectivityImpl::add ( idx_t  rows,
idx_t  cols,
const idx_t  values[],
bool  fortran_array = false 
)
virtual

Resize connectivity, and add given rows.

Note
Can only be used when data is owned.

Reimplemented in atlas::mesh::MultiBlockConnectivityImpl.

◆ add() [2/3]

void atlas::mesh::IrregularConnectivityImpl::add ( idx_t  rows,
idx_t  cols 
)
virtual

Resize connectivity, and add given rows with missing values.

Note
Can only be used when data is owned.

Reimplemented in atlas::mesh::MultiBlockConnectivityImpl.

◆ add() [3/3]

void atlas::mesh::IrregularConnectivityImpl::add ( idx_t  rows,
const idx_t  cols[] 
)
virtual

Resize connectivity, and add given rows with missing values.

Note
Can only be used when data is owned.

Reimplemented in atlas::mesh::MultiBlockConnectivityImpl.

◆ insert() [1/3]

void atlas::mesh::IrregularConnectivityImpl::insert ( idx_t  position,
idx_t  rows,
idx_t  cols,
const idx_t  values[],
bool  fortran_array = false 
)
virtual

Resize connectivity, and insert given rows.

Note
Can only be used when data is owned.

Reimplemented in atlas::mesh::MultiBlockConnectivityImpl.

◆ insert() [2/3]

void atlas::mesh::IrregularConnectivityImpl::insert ( idx_t  position,
idx_t  rows,
idx_t  cols 
)
virtual

Resize connectivity, and insert given rows with missing values.

Note
Can only be used when data is owned.

Reimplemented in atlas::mesh::MultiBlockConnectivityImpl.

◆ insert() [3/3]

void atlas::mesh::IrregularConnectivityImpl::insert ( idx_t  position,
idx_t  rows,
const idx_t  cols[] 
)
virtual

Resize connectivity, and insert given rows with missing values.

Note
Can only be used when data is owned.

Reimplemented in atlas::mesh::MultiBlockConnectivityImpl.

◆ operator()()

idx_t atlas::mesh::IrregularConnectivityImpl::operator() ( idx_t  row_idx,
idx_t  col_idx 
) const
inline

Access to connectivity table elements for given row and column The returned index has base 0 regardless if ATLAS_HAVE_FORTRAN is defined.

◆ resize()

void atlas::mesh::IrregularConnectivityImpl::resize ( idx_t  old_size,
idx_t  size,
bool  initialize,
const idx_t  values[],
bool  fortran_array 
)
virtual

Resize connectivity.

Note
Can only be used when data is owned.

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