| Cantera 3.0.0

Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Attributes | List of all members
Array2D Class Reference
Numerical Utilities » Matrix Handling

A class for 2D arrays stored in column-major (Fortran-compatible) form. More...

`#include <Array.h>`

Inheritance diagram for Array2D:
[legend]

## Detailed Description

A class for 2D arrays stored in column-major (Fortran-compatible) form.

In this form, the data entry for an n row, m col matrix is

      index = i + (n-1) * j

where

    J(i,j) = data_start + index
        i = row
        j = column

Definition at line 31 of file Array.h.

## Public Types
typedef vector< double >::iterator | iterator
| Type definition for the iterator class that is can be used by Array2D types.
typedef vector< double >::const_iterator | const_iterator
| Type definition for the const_iterator class that is can be used by Array2D types.

## Public Member Functions
| Array2D ()=default
| Default constructor.
| Array2D (const size_t m, const size_t n, const double v=0.0)
| Constructor.
| Array2D (const size_t m, const size_t n, const double *values)
| Constructor.
| Array2D (const Array2D &y)
Array2D & | operator= (const Array2D &y)
virtual void | resize (size_t n, size_t m, double v=0.0)
| Resize the array, and fill the new entries with 'v'.
void | appendColumn (const vector< double > &c)
| Append a column to the existing matrix using a std vector.
void | appendColumn (const double *const c)
| Append a column to the existing matrix.
void | setRow (size_t n, const double *const rw)
| Set the nth row to array rw.
void | getRow (size_t n, double *const rw)
| Get the nth row and return it in a vector.
void | setColumn (size_t m, double *const col)
| Set the values in column m to those in array col.
void | getColumn (size_t m, double *const col)
| Get the values in column m.
void | zero ()
| Set all of the entries to zero.
double & | operator() (size_t i, size_t j)
| Allows setting elements using the syntax A(i,j) = x.
double | operator() (size_t i, size_t j) const
| Allows retrieving elements using the syntax x = A(i,j).
double & | value (size_t i, size_t j)
| Returns a changeable reference to position in the matrix.
double | value (size_t i, size_t j) const
| Returns the value of a single matrix entry.
size_t | nRows () const
| Number of rows.
size_t | nColumns () const
| Number of columns.
iterator | begin ()
| Return an iterator pointing to the first element.
iterator | end ()
| Return an iterator pointing past the last element.
const_iterator | begin () const
| Return a const iterator pointing to the first element.
const_iterator | end () const
| Return a const iterator pointing to past the last element.
vector< double > & | data ()
| Return a reference to the data vector.
const vector< double > & | data () const
| Return a const reference to the data vector.
void | operator*= (double a)
double * | ptrColumn (size_t j)
| Return a pointer to the top of column j, columns are contiguous in memory.
const double * | ptrColumn (size_t j) const
| Return a const pointer to the top of column j, columns are contiguous in memory.

## Protected Attributes
vector< double > | m_data
| Data stored in a single array.
size_t | m_nrows = 0
| Number of rows.
size_t | m_ncols = 0
| Number of columns.

## Member Typedef Documentation

## ◆ iterator

typedef vector<double>::iterator iterator

Type definition for the iterator class that is can be used by Array2D types.

This is just equal to vector<double>::iterator.

Deprecated:
  Unused. To be removed after Cantera 3.0.

Definition at line 40 of file Array.h.

## ◆ const_iterator

typedef vector<double>::const_iterator const_iterator

Type definition for the const_iterator class that is can be used by Array2D types.

This is just equal to vector<double>::const_iterator.

Deprecated:
  Unused. To be removed after Cantera 3.0.

Definition at line 48 of file Array.h.

## Constructor & Destructor Documentation

## ◆ Array2D() [1/4]

Array2D | ( |  | ) |
| default

Default constructor.

Create an empty array.

## ◆ Array2D() [2/4]

Array2D | ( | const size_t | m,
|  | const size_t | n,
|  | const double | v = `0.0`
| ) |  |

Constructor.

Create an `m` by `n` array, and initialize all elements to `v`.

Parameters

  m | Number of rows
  n | Number of columns
  v | Default fill value. The default is 0.0

Definition at line 15 of file Array.cpp.

## ◆ Array2D() [3/4]

Array2D | ( | const size_t | m,
|  | const size_t | n,
|  | const double * | values
| ) |  |

Constructor.

Create an `m` by `n` array, initialized with the contents of the array `values`.

Parameters

  m | Number of rows
  n | Number of columns
  values | Initial values of the array. Must be of length m*n, and stored in column-major order.

Definition at line 22 of file Array.cpp.

## ◆ Array2D() [4/4]

Array2D | ( | const Array2D & | y | ) |

Definition at line 29 of file Array.cpp.

## Member Function Documentation

## ◆ operator=()

Array2D & operator= | ( | const Array2D & | y | ) |

Definition at line 36 of file Array.cpp.

## ◆ resize()

void resize | ( | size_t | n,
|  | size_t | m,
|  | double | v = `0.0`
| ) |  |
| virtual

Resize the array, and fill the new entries with 'v'.

Parameters

  n | This is the number of rows
  m | This is the number of columns in the new matrix
  v | Default fill value -> defaults to zero.

Reimplemented in DenseMatrix.

Definition at line 47 of file Array.cpp.

## ◆ appendColumn() [1/2]

void appendColumn | ( | const vector< double > & | c | ) |

Append a column to the existing matrix using a std vector.

This operation will add a column onto the existing matrix.

Parameters

  c | This vector is the entries in the column to be added. It must have a length equal to m_nrows or greater.

Definition at line 54 of file Array.cpp.

## ◆ appendColumn() [2/2]

void appendColumn | ( | const double *const | c | ) |

Append a column to the existing matrix.

This operation will add a column onto the existing matrix.

Parameters

  c | This vector of doubles is the entries in the column to be added. It must have a length equal to m_nrows or greater.

Definition at line 63 of file Array.cpp.

## ◆ setRow()

void setRow | ( | size_t | n,
|  | const double *const | rw
| ) |  |

Set the nth row to array rw.

Parameters

  n | Index of the row to be changed
  rw | Vector for the row. Must have a length of m_ncols.

Definition at line 72 of file Array.cpp.

## ◆ getRow()

void getRow | ( | size_t | n,
|  | double *const | rw
| ) |  |

Get the nth row and return it in a vector.

Parameters

  n | Index of the row to be returned.
  rw | Return Vector for the operation. Must have a length of m_ncols.

Definition at line 79 of file Array.cpp.

## ◆ setColumn()

void setColumn | ( | size_t | m,
|  | double *const | col
| ) |  |

Set the values in column m to those in array col.

A(i,m) = col(i)

Parameters

  m | Column to set
  col | pointer to a col vector. Vector must have a length of m_nrows.

Definition at line 86 of file Array.cpp.

## ◆ getColumn()

void getColumn | ( | size_t | m,
|  | double *const | col
| ) |  |

Get the values in column m.

col(i) = A(i,m)

Parameters

  m | Column to set
  col | pointer to a col vector that will be returned

Definition at line 93 of file Array.cpp.

## ◆ zero()

void zero | ( |  | ) |
| inline

Set all of the entries to zero.

Definition at line 143 of file Array.h.

## ◆ operator()() [1/2]

double & operator() | ( | size_t | i,
|  | size_t | j
| ) |  |
| inline

Allows setting elements using the syntax A(i,j) = x.

Parameters

  i | row index
  j | column index.

Returns
  a reference to A(i,j) which may be assigned.

Definition at line 153 of file Array.h.

## ◆ operator()() [2/2]

double operator() | ( | size_t | i,
|  | size_t | j
| ) |  | const
| inline

Allows retrieving elements using the syntax x = A(i,j).

Parameters

  i | Index for the row to be retrieved
  j | Index for the column to be retrieved.

Returns
  the value of the matrix entry

Definition at line 163 of file Array.h.

## ◆ value() [1/2]

double & value | ( | size_t | i,
|  | size_t | j
| ) |  |
| inline

Returns a changeable reference to position in the matrix.

Returns a reference to the matrix's (i,j) element. This may be used as an L value.

Parameters

  i | The row index
  j | The column index

Returns
  a changeable reference to the matrix entry

Definition at line 176 of file Array.h.

## ◆ value() [2/2]

double value | ( | size_t | i,
|  | size_t | j
| ) |  | const
| inline

Returns the value of a single matrix entry.

Returns the value of the matrix position (i,j) element.

Parameters

  i | The row index
  j | The column index

Definition at line 187 of file Array.h.

## ◆ nRows()

size_t nRows | ( |  | ) | const
| inline

Number of rows.

Definition at line 192 of file Array.h.

## ◆ nColumns()

size_t nColumns | ( |  | ) | const
| inline

Number of columns.

Definition at line 197 of file Array.h.

## ◆ begin() [1/2]

Array2D::iterator begin | ( |  | ) |

Return an iterator pointing to the first element.

Deprecated:
  Unused. To be removed after Cantera 3.0.

Definition at line 100 of file Array.cpp.

## ◆ end() [1/2]

Array2D::iterator end | ( |  | ) |

Return an iterator pointing past the last element.

Deprecated:
  Unused. To be removed after Cantera 3.0.

Definition at line 105 of file Array.cpp.

## ◆ begin() [2/2]

Array2D::const_iterator begin | ( |  | ) | const

Return a const iterator pointing to the first element.

Deprecated:
  Unused. To be removed after Cantera 3.0.

Definition at line 110 of file Array.cpp.

## ◆ end() [2/2]

Array2D::const_iterator end | ( |  | ) | const

Return a const iterator pointing to past the last element.

Deprecated:
  Unused. To be removed after Cantera 3.0.

Definition at line 115 of file Array.cpp.

## ◆ data() [1/2]

vector< double > & data | ( |  | ) |
| inline

Return a reference to the data vector.

Definition at line 218 of file Array.h.

## ◆ data() [2/2]

const vector< double > & data | ( |  | ) | const
| inline

Return a const reference to the data vector.

Definition at line 223 of file Array.h.

## ◆ ptrColumn() [1/2]

double * ptrColumn | ( | size_t | j | ) |
| inline

Return a pointer to the top of column j, columns are contiguous in memory.

Parameters

  j | Value of the column

Returns
  a pointer to the top of the column

Definition at line 235 of file Array.h.

## ◆ ptrColumn() [2/2]

const double * ptrColumn | ( | size_t | j | ) | const
| inline

Return a const pointer to the top of column j, columns are contiguous in memory.

Parameters

  j | Value of the column

Returns
  a const pointer to the top of the column

Definition at line 245 of file Array.h.

## Member Data Documentation

## ◆ m_data

vector<double> m_data
| protected

Data stored in a single array.

Definition at line 251 of file Array.h.

## ◆ m_nrows

size_t m_nrows = 0
| protected

Number of rows.

Definition at line 254 of file Array.h.

## ◆ m_ncols

size_t m_ncols = 0
| protected

Number of columns.

Definition at line 257 of file Array.h.

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

- Array.h
- Array.cpp