The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
|
Abstract field interfaces and native vector implementations.
Abstract interface definitions
Native vector implementations
Data Types | |
interface | oft_metis_partgraph |
Parition CRS graph using METIS. More... | |
type | oft_native_cmatrix |
Native CRS complex matrix class. More... | |
type | oft_native_cvector |
Native complex vector class. More... | |
type | oft_native_dense_cmatrix |
Native dense complex matrix implementation. More... | |
type | oft_native_dense_matrix |
Native dense matrix implementation. More... | |
type | oft_native_matrix |
Native CRS matrix class. More... | |
type | oft_native_submatrix |
Class for extracting a submatrix of oft_native_matrix (eg. for block solvers) More... | |
type | oft_native_vector |
Native vector class. More... | |
Functions/Subroutines | |
subroutine | cmat_add_values (self, i_inds, j_inds, b, n, m, iblock, jblock, loc_cache) |
Add values to a matrix. | |
subroutine | cmat_apply_cvec (self, a, b) |
Apply the matrix to a field. | |
subroutine | cmat_apply_vec (self, a, b) |
Apply the matrix to a field. | |
subroutine | cmat_applyt_cvec (self, a, b) |
Apply the matrix to a field. | |
subroutine | cmat_applyt_vec (self, a, b) |
Apply the matrix to a field. | |
subroutine | cmat_assemble (self, diag) |
Finish assembly of matrix and optionally extract diagonals. | |
subroutine | cmat_atomic_add_values (self, i_inds, j_inds, b, n, m, iblock, jblock, loc_cache) |
Add values to a matrix. | |
subroutine | cmat_delete (self) |
Delete matrix. | |
subroutine | cmat_set_values (self, i_inds, j_inds, b, n, m, iblock, jblock) |
Set values of a matrix. | |
subroutine | cmat_zero (self) |
Zero all entries in matrix. | |
subroutine | cmat_zero_cols (self, ncols, icols, jblock, keep_diag) |
Zero all entries in the specified columns. | |
subroutine | cmat_zero_rows (self, nrows, irows, iblock, keep_diag) |
Zero all entries in the specified rows. | |
subroutine | cvec_add_cvec (self, gamma, alpha, a, beta, b) |
Add vectors. | |
subroutine | cvec_add_vec (self, gamma, alpha, a, beta, b) |
Add vectors. | |
subroutine | cvec_delete (self) |
Finalize vector. | |
complex(c8) function | cvec_dot_cvec (self, a) |
Dot product with a vector. | |
complex(c8) function | cvec_dot_vec (self, a) |
Dot product with a vector. | |
subroutine | cvec_get_local (self, array, iblock) |
Get local values from vector. | |
subroutine | cvec_get_slice (self, array, iblock) |
Get values for locally-owned portion of vector (slice) | |
complex(c8) function, dimension(n) | cvec_mdot_cvec (self, a, n) |
Dot product with an array of vectors. | |
complex(c8) function, dimension(n) | cvec_mdot_vec (self, a, n) |
Dot product with an array of vectors. | |
subroutine | cvec_mult_cvec (self, a, div_flag) |
Elementwise multiplication with another vector. | |
subroutine | cvec_mult_vec (self, a, div_flag) |
Elementwise multiplication with another vector. | |
subroutine | cvec_new_cvec (self, new) |
Create a new vector as a bare copy of self | |
subroutine | cvec_new_vec (self, new) |
Create a new vector as a bare copy of self | |
real(r8) function | cvec_norm (self, itype) |
Compute norm of vector. | |
subroutine | cvec_restore_local (self, array, iblock, add, wait) |
Set/add local values to vector. | |
subroutine | cvec_restore_slice (self, array, iblock, wait) |
Set/add values for locally-owned portion of vector (slice) | |
subroutine | cvec_scale (self, alpha) |
Scale vector by a scalar. | |
subroutine | cvec_set (self, alpha, iblock, random) |
Set all elements to a scalar. | |
subroutine | cvec_stitch (self, up_method) |
Finalize vector. | |
complex(c8) function | cvec_sum (self) |
Sum reduction over vector. | |
subroutine | dense_cmat_add_values (self, i_inds, j_inds, b, n, m, iblock, jblock, loc_cache) |
Add values to a matrix. | |
subroutine | dense_cmat_apply_cvec (self, a, b) |
Apply the matrix to a field. | |
subroutine | dense_cmat_apply_vec (self, a, b) |
Apply the matrix to a field. | |
subroutine | dense_cmat_applyt_cvec (self, a, b) |
Apply the matrix to a field. | |
subroutine | dense_cmat_applyt_vec (self, a, b) |
Apply the matrix to a field. | |
subroutine | dense_cmat_assemble (self, diag) |
Finish assembly of matrix and optionally extract diagonals. | |
subroutine | dense_cmat_atomic_add_values (self, i_inds, j_inds, b, n, m, iblock, jblock, loc_cache) |
Add values to a matrix. | |
subroutine | dense_cmat_delete (self) |
Delete matrix. | |
subroutine | dense_cmat_set_values (self, i_inds, j_inds, b, n, m, iblock, jblock) |
Set values of a matrix. | |
subroutine | dense_cmat_zero (self) |
Zero all entries in matrix. | |
subroutine | dense_cmat_zero_cols (self, ncols, icols, jblock, keep_diag) |
Zero all entries in the specified columns. | |
subroutine | dense_cmat_zero_rows (self, nrows, irows, iblock, keep_diag) |
Zero all entries in the specified rows. | |
subroutine | dense_mat_add_values (self, i_inds, j_inds, b, n, m, iblock, jblock, loc_cache) |
Add values to a matrix. | |
subroutine | dense_mat_apply_cvec (self, a, b) |
Apply the matrix to a field. | |
subroutine | dense_mat_apply_vec (self, a, b) |
Apply the matrix to a field. | |
subroutine | dense_mat_applyt_cvec (self, a, b) |
Apply the matrix to a field. | |
subroutine | dense_mat_applyt_vec (self, a, b) |
Apply the matrix to a field. | |
subroutine | dense_mat_assemble (self, diag) |
Finish assembly of matrix and optionally extract diagonals. | |
subroutine | dense_mat_atomic_add_values (self, i_inds, j_inds, b, n, m, iblock, jblock, loc_cache) |
Add values to a matrix. | |
subroutine | dense_mat_delete (self) |
Delete matrix. | |
subroutine | dense_mat_set_values (self, i_inds, j_inds, b, n, m, iblock, jblock) |
Set values of a matrix. | |
subroutine | dense_mat_zero (self) |
Zero all entries in matrix. | |
subroutine | dense_mat_zero_cols (self, ncols, icols, jblock, keep_diag) |
Zero all entries in the specified columns. | |
subroutine | dense_mat_zero_rows (self, nrows, irows, iblock, keep_diag) |
Zero all entries in the specified rows. | |
subroutine | mat_add_values (self, i_inds, j_inds, b, n, m, iblock, jblock, loc_cache) |
Add values to a matrix. | |
subroutine | mat_apply_cvec (self, a, b) |
Compute matrix-vector product (complex) | |
subroutine | mat_apply_vec (self, a, b) |
Compute matrix-vector product. | |
subroutine | mat_applyt_cvec (self, a, b) |
Apply matrix vector product for matrix transpose (complex vector) | |
subroutine | mat_applyt_vec (self, a, b) |
Apply matrix vector product for matrix transpose. | |
subroutine | mat_assemble (self, diag) |
Finish assembly of matrix and optionally extract diagonals. | |
subroutine | mat_atomic_add_values (self, i_inds, j_inds, b, n, m, iblock, jblock, loc_cache) |
Add values to a matrix. | |
subroutine | mat_delete (self) |
Delete matrix. | |
subroutine | mat_set_values (self, i_inds, j_inds, b, n, m, iblock, jblock) |
Set values of a matrix. | |
subroutine | mat_zero (self) |
Zero all entries in matrix. | |
subroutine | mat_zero_cols (self, ncols, icols, jblock, keep_diag) |
Zero all entries in the specified columns. | |
subroutine | mat_zero_rows (self, nrows, irows, iblock, keep_diag) |
Zero all entries in the specified rows. | |
subroutine | matrix_update_slice (self) |
Update full local matrix with values from other processors. | |
integer(i4) function, public | native_cmatrix_cast (self, source) |
Cast a matrix object to a oft_native_matrix. | |
logical function, public | native_cvector_cast (self, source) |
Cast an abstract vector object to oft_native_cvector. | |
logical function, public | native_matrix_cast (self, source) |
Cast an abstract matrix object to oft_native_matrix. | |
subroutine, public | native_matrix_setup_full (self, u) |
Build full local submatrix for matrix. | |
logical function, public | native_vector_cast (self, source) |
Cast an abstract vector object to oft_native_vector. | |
subroutine, public | native_vector_slice_pop (self, ig, rst_info) |
Insert data from a restart structure into a vector. | |
subroutine, public | native_vector_slice_push (self, ig, rst_info, alloc_only) |
Insert vector data into a restart structure for output. | |
subroutine, public | partition_graph (graph, n, part) |
Perform graph partitioning (METIS) | |
subroutine | submatrix_delete (self) |
Delete matrix. | |
subroutine | submatrix_setup (self, mat, u, slice, part) |
Setup local submatrix from parent matrix. | |
subroutine | submatrix_update_slice (self) |
Update matrix with values from parent matrix. | |
subroutine | vec_add (self, gamma, alpha, a, beta, b) |
Add vectors. | |
subroutine | vec_delete (self) |
Finalize vector. | |
complex(c8) function | vec_dot_cvec (self, a) |
Dot product with a complex vector. | |
real(r8) function | vec_dot_vec (self, a) |
Dot product with a vector. | |
subroutine | vec_get_local (self, array, iblock) |
Get local values from vector. | |
subroutine | vec_get_slice (self, array, iblock) |
Get values for locally-owned portion of vector (slice) | |
complex(c8) function, dimension(n) | vec_mdot_cvec (self, a, n) |
Dot product with an array of complex vectors. | |
real(r8) function, dimension(n) | vec_mdot_vec (self, a, n) |
Dot product with an array of vectors. | |
subroutine | vec_mult (self, a, div_flag) |
Elementwise multiplication with another vector. | |
subroutine | vec_new_cvec (self, new) |
Create a new complex vector as a bare copy of self | |
subroutine | vec_new_vec (self, new) |
Create a new vector as a bare copy of self | |
real(r8) function | vec_norm (self, itype) |
Compute norm of vector. | |
subroutine | vec_restore_local (self, array, iblock, add, wait) |
Set/add local values to vector. | |
subroutine | vec_restore_slice (self, array, iblock, wait) |
Set/add values for locally-owned portion of vector (slice) | |
subroutine | vec_scale (self, alpha) |
Scale vector by a scalar. | |
subroutine | vec_set (self, alpha, iblock, random) |
Set all elements to a scalar. | |
subroutine | vec_stitch (self, up_method) |
Perform global stitching. | |
real(r8) function | vec_sum (self) |
Sum reduction over vector. | |
Variables | |
integer(i4), parameter | lc_offset = HUGE(INT(1, 2)) |
|
private |
Add values to a matrix.
[in] | i_inds | Row indices of entries to add [n] |
[in] | j_inds | Column indices of entries to add [m] |
[in] | b | Values to add [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
[in,out] | loc_cache | Cache of entry locations |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Finish assembly of matrix and optionally extract diagonals.
[in,out] | diag | Diagonal entries of matrix [nr] (optional) |
|
private |
Add values to a matrix.
[in] | i_inds | Row indices of entries to add [n] |
[in] | j_inds | Column indices of entries to add [m] |
[in] | b | Values to add [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
[in,out] | loc_cache | Cache of entry locations |
|
private |
Delete matrix.
|
private |
Set values of a matrix.
[in] | i_inds | Row indices of entries to set [n] |
[in] | j_inds | Column indices of entries to set [m] |
[in] | b | Values to set [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
|
private |
Zero all entries in matrix.
|
private |
Zero all entries in the specified columns.
[in] | ncols | Number of columns to zero |
[in] | icols | Indices of columns to zero [ncols] |
[in] | jblock | Column block (optional) |
[in] | keep_diag | Keep diagonal entries |
|
private |
Zero all entries in the specified rows.
[in] | nrows | Number of rows to zero |
[in] | irows | Indices of rows to zero [nrows] |
[in] | iblock | Row block (optional) |
[in] | keep_diag | Keep diagonal entries |
|
private |
Add vectors.
self = \( \gamma \) self + \( \alpha \) a + \( \beta \) b
[in,out] | self | Vector object |
[in] | gamma | Scale of source vector |
[in] | alpha | Scale of first vector |
[in,out] | a | First vector to add |
[in] | beta | Scale of second vector (optional) |
[in,out] | b | Second vector to add (optional) |
|
private |
Add vectors.
self = \( \gamma \) self + \( \alpha \) a + \( \beta \) b
[in,out] | self | Vector object |
[in] | gamma | Scale of source vector |
[in] | alpha | Scale of first vector |
[in,out] | a | First vector to add |
[in] | beta | Scale of second vector (optional) |
[in,out] | b | Second vector to add (optional) |
|
private |
Finalize vector.
[in,out] | self | Vector object |
|
private |
Dot product with a vector.
[in,out] | self | Vector object |
[in,out] | a | Second vector for dot product |
|
private |
Dot product with a vector.
[in,out] | self | Vector object |
[in,out] | a | Second vector for dot product |
|
private |
Get local values from vector.
[in,out] | self | Vector object |
[in,out] | array | Local values |
[in] | iblock | Sub-block to retrieve |
|
private |
Get values for locally-owned portion of vector (slice)
[in,out] | self | Vector object |
[in,out] | array | Slice values |
[in] | iblock | Sub-block to retrieve |
|
private |
Dot product with an array of vectors.
[in,out] | self | Vector object |
[in,out] | a | Array of vectors for dot product [n] |
[in] | n | Length of vector array |
|
private |
Dot product with an array of vectors.
[in,out] | self | Vector object |
[in,out] | a | Array of vectors for dot product [n] |
[in] | n | Length of vector array |
|
private |
Elementwise multiplication with another vector.
\( self_i = self_i * a_i \)
[in,out] | self | Vector object |
[in,out] | a | vector for multiplication |
[in] | div_flag | Divide instead of multiply? |
|
private |
Elementwise multiplication with another vector.
\( self_i = self_i * a_i \)
[in,out] | self | Vector object |
[in,out] | a | vector for multiplication |
[in] | div_flag | Divide instead of multiply? |
|
private |
Create a new vector as a bare copy of self
[in] | self | Vector object |
[out] | new | New vector |
|
private |
Create a new vector as a bare copy of self
[in] | self | Vector object |
[out] | new | New vector |
|
private |
Compute norm of vector.
[in,out] | self | Vector object |
[in] | itype | Type of norm (1-> 1-norm, 2-> 2-norm, 3-> Inf-norm) |
|
private |
Set/add local values to vector.
[in,out] | self | Vector object |
[in] | array | Local values |
[in] | iblock | Sub-block to restore |
[in] | add | Add values instead of replace |
[in] | wait | Wait to perform global sync? |
|
private |
Set/add values for locally-owned portion of vector (slice)
[in,out] | self | Vector object |
[in] | array | Slice values |
[in] | iblock | Sub-block to restore |
[in] | wait | Wait to perform global sync? |
|
private |
Scale vector by a scalar.
[in,out] | self | Vector object |
[in] | alpha | Scale factor |
|
private |
Set all elements to a scalar.
[in,out] | self | Vector object |
[in] | alpha | Updated vector value |
[in] | iblock | Vector sub-block to act on |
[in] | random | Set to random number, if true alpha is ignored (optional) |
|
private |
Finalize vector.
[in,out] | self | Vector object |
|
private |
Sum reduction over vector.
[in,out] | self | Vector object |
|
private |
Add values to a matrix.
[in] | i_inds | Row indices of entries to add [n] |
[in] | j_inds | Column indices of entries to add [m] |
[in] | b | Values to add [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
[in,out] | loc_cache | Cache of entry locations |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Finish assembly of matrix and optionally extract diagonals.
[in,out] | diag | Diagonal entries of matrix [nr] (optional) |
|
private |
Add values to a matrix.
[in] | i_inds | Row indices of entries to add [n] |
[in] | j_inds | Column indices of entries to add [m] |
[in] | b | Values to add [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
[in,out] | loc_cache | Cache of entry locations |
|
private |
Delete matrix.
|
private |
Set values of a matrix.
[in] | i_inds | Row indices of entries to set [n] |
[in] | j_inds | Column indices of entries to set [m] |
[in] | b | Values to set [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
|
private |
Zero all entries in matrix.
|
private |
Zero all entries in the specified columns.
[in] | ncols | Number of columns to zero |
[in] | icols | Indices of columns to zero [ncols] |
[in] | jblock | Column block (optional) |
[in] | keep_diag | Keep diagonal entries |
|
private |
Zero all entries in the specified rows.
[in] | nrows | Number of rows to zero |
[in] | irows | Indices of rows to zero [nrows] |
[in] | iblock | Row block (optional) |
[in] | keep_diag | Keep diagonal entries |
|
private |
Add values to a matrix.
[in] | i_inds | Row indices of entries to add [n] |
[in] | j_inds | Column indices of entries to add [m] |
[in] | b | Values to set [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
[in,out] | loc_cache | Cache of entry locations |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Apply the matrix to a field.
b = self * a
[in,out] | a | Source field |
[in,out] | b | Result of matrix product |
|
private |
Finish assembly of matrix and optionally extract diagonals.
[in,out] | diag | Diagonal entries of matrix [nr] (optional) |
|
private |
Add values to a matrix.
[in] | i_inds | Row indices of entries to add [n] |
[in] | j_inds | Column indices of entries to add [m] |
[in] | b | Values to set [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
[in,out] | loc_cache | Cache of entry locations |
|
private |
Delete matrix.
|
private |
Set values of a matrix.
[in] | i_inds | Row indices of entries to set [n] |
[in] | j_inds | Column indices of entries to set [m] |
[in] | b | Values to set [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
|
private |
Zero all entries in matrix.
|
private |
Zero all entries in the specified columns.
[in] | ncols | Number of columns to zero |
[in] | icols | Indices of columns to zero [ncols] |
[in] | jblock | Column block (optional) |
[in] | keep_diag | Keep diagonal entries |
|
private |
Zero all entries in the specified rows.
[in] | nrows | Number of rows to zero |
[in] | irows | Indices of rows to zero [nrows] |
[in] | iblock | Row block (optional) |
[in] | keep_diag | Keep diagonal entries |
|
private |
Add values to a matrix.
[in,out] | self | Matrix object |
[in] | i_inds | Row indices of entries to add [n] |
[in] | j_inds | Column indices of entries to add [m] |
[in] | b | Values to set [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
[in,out] | loc_cache | Cache of entry locations |
|
private |
Compute matrix-vector product (complex)
b = self * a
[in,out] | self | Matrix object |
[in,out] | a | Source vector |
[in,out] | b | Result of matrix product |
|
private |
Compute matrix-vector product.
b = self * a
[in,out] | self | Matrix object |
[in,out] | a | Source vector |
[in,out] | b | Result of matrix product |
|
private |
Apply matrix vector product for matrix transpose (complex vector)
b = self^T * a
[in,out] | self | Matrix object |
[in,out] | a | Source vector |
[in,out] | b | Result of matrix product |
|
private |
Apply matrix vector product for matrix transpose.
b = self^T * a
[in,out] | self | Matrix object |
[in,out] | a | Source vector |
[in,out] | b | Result of matrix product |
|
private |
Finish assembly of matrix and optionally extract diagonals.
[in,out] | self | Matrix object |
[in,out] | diag | Diagonal entries of matrix [nr] (optional) |
|
private |
Add values to a matrix.
[in] | i_inds | Row indices of entries to add [n] |
[in] | j_inds | Column indices of entries to add [m] |
[in] | b | Values to set [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
[in,out] | loc_cache | Cache of entry locations |
|
private |
Delete matrix.
|
private |
Set values of a matrix.
[in,out] | self | Matrix object |
[in] | i_inds | Row indices of entries to set [n] |
[in] | j_inds | Column indices of entries to set [m] |
[in] | b | Values to set [n,m] |
[in] | n | Number of rows in local matrix |
[in] | m | Number of columns in local matrix |
[in] | iblock | Row block (optional) |
[in] | jblock | Column block (optional) |
|
private |
Zero all entries in matrix.
[in,out] | self | Matrix object |
|
private |
Zero all entries in the specified columns.
[in] | ncols | Number of columns to zero |
[in] | icols | Indices of columns to zero [ncols] |
[in] | jblock | Column block (optional) |
[in] | keep_diag | Keep diagonal entries |
|
private |
Zero all entries in the specified rows.
[in,out] | self | Matrix object |
[in] | nrows | Number of rows to zero |
[in] | irows | Indices of rows to zero [nrows] |
[in] | iblock | Row block (optional) |
[in] | keep_diag | Keep diagonal entries |
|
private |
Update full local matrix with values from other processors.
integer(i4) function, public native_cmatrix_cast | ( | class(oft_native_cmatrix), intent(out), pointer | self, |
class(oft_cmatrix), intent(in), target | source | ||
) |
Cast a matrix object to a oft_native_matrix.
The source matrix must be oft_native_matrix or a child class, otherwise an error will be thrown
[out] | self | Pointer to cast crsmatrix |
[in] | source | Source matrix to cast |
logical function, public native_cvector_cast | ( | class(oft_native_cvector), intent(out), pointer | self, |
class(oft_cvector), intent(in), target | source | ||
) |
Cast an abstract vector object to oft_native_cvector.
The source vector must be oft_native_vector or a child class, otherwise pointer will be returned as null
and success == .FALSE.
[out] | self | Cast pointer |
[in] | source | Abstract vector object |
logical function, public native_matrix_cast | ( | class(oft_native_matrix), intent(out), pointer | self, |
class(oft_matrix), intent(in), target | source | ||
) |
Cast an abstract matrix object to oft_native_matrix.
The source matrix must be oft_native_matrix or a child class, otherwise pointer will be returned as null
and success == .FALSE.
[out] | self | Reference to source object with desired class |
[in] | source | Abstract vector object |
subroutine, public native_matrix_setup_full | ( | class(oft_native_matrix), intent(inout) | self, |
class(oft_vector), intent(inout), target | u | ||
) |
Build full local submatrix for matrix.
[in,out] | u | Constructed vector for parent row space |
logical function, public native_vector_cast | ( | class(oft_native_vector), intent(out), pointer | self, |
class(oft_vector), intent(in), target | source | ||
) |
Cast an abstract vector object to oft_native_vector.
The source vector must be oft_native_vector or a child class, otherwise pointer will be returned as null
and success == .FALSE.
[out] | self | Cast pointer |
[in] | source | Abstract vector object |
subroutine, public native_vector_slice_pop | ( | class(oft_native_vector), intent(inout), pointer | self, |
integer(i8), dimension(:), intent(in) | ig, | ||
type(hdf5_rst), intent(inout) | rst_info | ||
) |
Insert data from a restart structure into a vector.
Vector data is copied from the restart structure following a call to hdf5_rst_read.
[in,out] | self | Destination vector |
[in] | ig | Global indices for self |
[in,out] | rst_info | Restart structure for output |
subroutine, public native_vector_slice_push | ( | class(oft_native_vector), intent(in), pointer | self, |
integer(i8), dimension(:), intent(in) | ig, | ||
type(hdf5_rst), intent(out) | rst_info, | ||
logical, intent(in), optional | alloc_only | ||
) |
Insert vector data into a restart structure for output.
Vector data and associated offsets are copied into the restart structure for use with hdf5_rst_write.
[in] | self | Source vector |
[in] | ig | Global indices for self |
[out] | rst_info | Restart structure for output |
[in] | alloc_only | Allocate and setup data structures only (optional) |
subroutine, public partition_graph | ( | type(oft_graph), intent(inout) | graph, |
integer(i4), intent(in) | n, | ||
integer(i4), dimension(:), intent(inout) | part | ||
) |
Perform graph partitioning (METIS)
[in,out] | graph | Graph to partition |
[in] | n | Desired number of partitions |
[in,out] | part | Array of partition ID for each element [graphnr] |
|
private |
Delete matrix.
|
private |
Setup local submatrix from parent matrix.
[in,out] | mat | Parent matrix |
[in,out] | u | Constructed vector for parent row space |
[in] | slice | Index of field slice to use (optional) |
[in] | part | Array of elements to define submatrix [:] (optional) |
|
private |
Update matrix with values from parent matrix.
|
private |
Add vectors.
self = \( \gamma \) self + \( \alpha \) a + \( \beta \) b
[in,out] | self | Vector object |
[in] | gamma | Scale of source vector |
[in] | alpha | Scale of first vector |
[in,out] | a | First vector to add |
[in] | beta | Scale of second vector (optional) |
[in,out] | b | Second vector to add (optional) |
|
private |
Finalize vector.
[in,out] | self | Vector object |
|
private |
Dot product with a complex vector.
[in,out] | self | Vector object |
[in,out] | a | Second vector for dot product |
|
private |
Dot product with a vector.
[in,out] | self | Vector object |
[in,out] | a | Second vector for dot product |
|
private |
Get local values from vector.
[in,out] | self | Vector object |
[in,out] | array | Local values |
[in] | iblock | Sub-block to retrieve |
|
private |
Get values for locally-owned portion of vector (slice)
[in,out] | self | Vector object |
[in,out] | array | Slice values |
[in] | iblock | Sub-block to retrieve |
|
private |
Dot product with an array of complex vectors.
[in,out] | self | Vector object |
[in,out] | a | Array of vectors for dot product [n] |
[in] | n | Length of vector array |
|
private |
Dot product with an array of vectors.
[in,out] | self | Vector object |
[in,out] | a | Array of vectors for dot product [n] |
[in] | n | Length of vector array |
|
private |
Elementwise multiplication with another vector.
\( self_i = self_i * a_i \)
[in,out] | self | Vector object |
[in,out] | a | vector for multiplication |
[in] | div_flag | Divide instead of multiply? |
|
private |
Create a new complex vector as a bare copy of self
[in] | self | Vector object |
[out] | new | New vector |
|
private |
Create a new vector as a bare copy of self
[in] | self | Vector object |
[out] | new | New vector |
|
private |
Compute norm of vector.
[in,out] | self | Vector object |
[in] | itype | Type of norm (1-> 1-norm, 2-> 2-norm, 3-> Inf-norm) |
|
private |
Set/add local values to vector.
[in,out] | self | Vector object |
[in] | array | Local values |
[in] | iblock | Sub-block to restore |
[in] | add | Add values instead of replace |
[in] | wait | Wait to perform global sync |
|
private |
Set/add values for locally-owned portion of vector (slice)
[in,out] | self | Vector object |
[in] | array | Slice values |
[in] | iblock | Sub-block to restore |
[in] | wait | Wait to perform global sync? |
|
private |
Scale vector by a scalar.
[in,out] | self | Vector object |
[in] | alpha | Scale factor |
|
private |
Set all elements to a scalar.
[in,out] | self | Vector object |
[in] | alpha | Updated vector value |
[in] | iblock | Vector sub-block to act on |
[in] | random | Set to random number, if true alpha is ignored (optional) |
|
private |
Perform global stitching.
[in,out] | self | Vector object |
[in] | up_method | Type of stitching to perform |
|
private |
Sum reduction over vector.
[in,out] | self | Vector object |
|
private |