The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
Data Types | Functions/Subroutines | Variables
oft_native_la Module Reference

Detailed Description

Abstract field interfaces and native vector implementations.

Abstract interface definitions

Native vector implementations

See also
oft_petsc_vectors
Authors
Chris Hansen
Date
Feburary 2012

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))
 

Function/Subroutine Documentation

◆ cmat_add_values()

subroutine cmat_add_values ( class(oft_native_cmatrix), intent(inout)  self,
integer(i4), dimension(n), intent(in)  i_inds,
integer(i4), dimension(m), intent(in)  j_inds,
complex(c8), dimension(n,m), intent(in)  b,
integer(i4), intent(in)  n,
integer(i4), intent(in)  m,
integer(i4), intent(in), optional  iblock,
integer(i4), intent(in), optional  jblock,
integer(i4), dimension(n,m), intent(inout), optional  loc_cache 
)
private

Add values to a matrix.

Parameters
[in]i_indsRow indices of entries to add [n]
[in]j_indsColumn indices of entries to add [m]
[in]bValues to add [n,m]
[in]nNumber of rows in local matrix
[in]mNumber of columns in local matrix
[in]iblockRow block (optional)
[in]jblockColumn block (optional)
[in,out]loc_cacheCache of entry locations

◆ cmat_apply_cvec()

subroutine cmat_apply_cvec ( class(oft_native_cmatrix), intent(inout)  self,
class(oft_cvector), intent(inout), target  a,
class(oft_cvector), intent(inout)  b 
)
private

Apply the matrix to a field.

b = self * a

Parameters
[in,out]aSource field
[in,out]bResult of matrix product

◆ cmat_apply_vec()

subroutine cmat_apply_vec ( class(oft_native_cmatrix), intent(inout)  self,
class(oft_vector), intent(inout), target  a,
class(oft_cvector), intent(inout)  b 
)
private

Apply the matrix to a field.

b = self * a

Parameters
[in,out]aSource field
[in,out]bResult of matrix product

◆ cmat_applyt_cvec()

subroutine cmat_applyt_cvec ( class(oft_native_cmatrix), intent(inout)  self,
class(oft_cvector), intent(inout), target  a,
class(oft_cvector), intent(inout)  b 
)
private

Apply the matrix to a field.

b = self * a

Parameters
[in,out]aSource field
[in,out]bResult of matrix product

◆ cmat_applyt_vec()

subroutine cmat_applyt_vec ( class(oft_native_cmatrix), intent(inout)  self,
class(oft_vector), intent(inout), target  a,
class(oft_cvector), intent(inout)  b 
)
private

Apply the matrix to a field.

b = self * a

Parameters
[in,out]aSource field
[in,out]bResult of matrix product

◆ cmat_assemble()

subroutine cmat_assemble ( class(oft_native_cmatrix), intent(inout)  self,
class(oft_cvector), intent(inout), optional, target  diag 
)
private

Finish assembly of matrix and optionally extract diagonals.

Parameters
[in,out]diagDiagonal entries of matrix [nr] (optional)

◆ cmat_atomic_add_values()

subroutine cmat_atomic_add_values ( class(oft_native_cmatrix), intent(inout)  self,
integer(i4), dimension(n), intent(in)  i_inds,
integer(i4), dimension(m), intent(in)  j_inds,
complex(c8), dimension(n,m), intent(in)  b,
integer(i4), intent(in)  n,
integer(i4), intent(in)  m,
integer(i4), intent(in), optional  iblock,
integer(i4), intent(in), optional  jblock,
integer(i4), dimension(n,m), intent(inout), optional  loc_cache 
)
private

Add values to a matrix.

Parameters
[in]i_indsRow indices of entries to add [n]
[in]j_indsColumn indices of entries to add [m]
[in]bValues to add [n,m]
[in]nNumber of rows in local matrix
[in]mNumber of columns in local matrix
[in]iblockRow block (optional)
[in]jblockColumn block (optional)
[in,out]loc_cacheCache of entry locations

◆ cmat_delete()

subroutine cmat_delete ( class(oft_native_cmatrix), intent(inout)  self)
private

Delete matrix.

◆ cmat_set_values()

subroutine cmat_set_values ( class(oft_native_cmatrix), intent(inout)  self,
integer(i4), dimension(n), intent(in)  i_inds,
integer(i4), dimension(m), intent(in)  j_inds,
complex(c8), dimension(n,m), intent(in)  b,
integer(i4), intent(in)  n,
integer(i4), intent(in)  m,
integer(i4), intent(in), optional  iblock,
integer(i4), intent(in), optional  jblock 
)
private

Set values of a matrix.

Parameters
[in]i_indsRow indices of entries to set [n]
[in]j_indsColumn indices of entries to set [m]
[in]bValues to set [n,m]
[in]nNumber of rows in local matrix
[in]mNumber of columns in local matrix
[in]iblockRow block (optional)
[in]jblockColumn block (optional)

◆ cmat_zero()

subroutine cmat_zero ( class(oft_native_cmatrix), intent(inout)  self)
private

Zero all entries in matrix.

◆ cmat_zero_cols()

subroutine cmat_zero_cols ( class(oft_native_cmatrix), intent(inout)  self,
integer(i4), intent(in)  ncols,
integer(i4), dimension(ncols), intent(in)  icols,
integer(i4), intent(in), optional  jblock,
logical, intent(in), optional  keep_diag 
)
private

Zero all entries in the specified columns.

Parameters
[in]ncolsNumber of columns to zero
[in]icolsIndices of columns to zero [ncols]
[in]jblockColumn block (optional)
[in]keep_diagKeep diagonal entries

◆ cmat_zero_rows()

subroutine cmat_zero_rows ( class(oft_native_cmatrix), intent(inout)  self,
integer(i4), intent(in)  nrows,
integer(i4), dimension(nrows), intent(in)  irows,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  keep_diag 
)
private

Zero all entries in the specified rows.

Parameters
[in]nrowsNumber of rows to zero
[in]irowsIndices of rows to zero [nrows]
[in]iblockRow block (optional)
[in]keep_diagKeep diagonal entries

◆ cvec_add_cvec()

subroutine cvec_add_cvec ( class(oft_native_cvector), intent(inout)  self,
complex(c8), intent(in)  gamma,
complex(c8), intent(in)  alpha,
class(oft_cvector), intent(inout), target  a,
complex(c8), intent(in), optional  beta,
class(oft_cvector), intent(inout), optional, target  b 
)
private

Add vectors.

self = \( \gamma \) self + \( \alpha \) a + \( \beta \) b

Parameters
[in,out]selfVector object
[in]gammaScale of source vector
[in]alphaScale of first vector
[in,out]aFirst vector to add
[in]betaScale of second vector (optional)
[in,out]bSecond vector to add (optional)

◆ cvec_add_vec()

subroutine cvec_add_vec ( class(oft_native_cvector), intent(inout)  self,
complex(c8), intent(in)  gamma,
complex(c8), intent(in)  alpha,
class(oft_vector), intent(inout), target  a,
complex(c8), intent(in), optional  beta,
class(oft_vector), intent(inout), optional, target  b 
)
private

Add vectors.

self = \( \gamma \) self + \( \alpha \) a + \( \beta \) b

Parameters
[in,out]selfVector object
[in]gammaScale of source vector
[in]alphaScale of first vector
[in,out]aFirst vector to add
[in]betaScale of second vector (optional)
[in,out]bSecond vector to add (optional)

◆ cvec_delete()

subroutine cvec_delete ( class(oft_native_cvector), intent(inout)  self)
private

Finalize vector.

Parameters
[in,out]selfVector object

◆ cvec_dot_cvec()

complex(c8) function cvec_dot_cvec ( class(oft_native_cvector), intent(inout)  self,
class(oft_cvector), intent(inout), target  a 
)
private

Dot product with a vector.

Parameters
[in,out]selfVector object
[in,out]aSecond vector for dot product
Returns
\( \sum_i self_i a_i \)

◆ cvec_dot_vec()

complex(c8) function cvec_dot_vec ( class(oft_native_cvector), intent(inout)  self,
class(oft_vector), intent(inout), target  a 
)
private

Dot product with a vector.

Parameters
[in,out]selfVector object
[in,out]aSecond vector for dot product
Returns
\( \sum_i self_i a_i \)

◆ cvec_get_local()

subroutine cvec_get_local ( class(oft_native_cvector), intent(inout)  self,
complex(c8), dimension(:), intent(inout), pointer  array,
integer(i4), intent(in), optional  iblock 
)
private

Get local values from vector.

Parameters
[in,out]selfVector object
[in,out]arrayLocal values
[in]iblockSub-block to retrieve

◆ cvec_get_slice()

subroutine cvec_get_slice ( class(oft_native_cvector), intent(inout)  self,
complex(c8), dimension(:), intent(inout), pointer  array,
integer(i4), intent(in), optional  iblock 
)
private

Get values for locally-owned portion of vector (slice)

Parameters
[in,out]selfVector object
[in,out]arraySlice values
[in]iblockSub-block to retrieve

◆ cvec_mdot_cvec()

complex(c8) function, dimension(n) cvec_mdot_cvec ( class(oft_native_cvector), intent(inout)  self,
type(oft_cvector_ptr), dimension(n), intent(inout)  a,
integer(i4), intent(in)  n 
)
private

Dot product with an array of vectors.

Parameters
[in,out]selfVector object
[in,out]aArray of vectors for dot product [n]
[in]nLength of vector array
Returns
\( \sum_i self_i a(j)_i \)

◆ cvec_mdot_vec()

complex(c8) function, dimension(n) cvec_mdot_vec ( class(oft_native_cvector), intent(inout)  self,
type(oft_vector_ptr), dimension(n), intent(inout)  a,
integer(i4), intent(in)  n 
)
private

Dot product with an array of vectors.

Parameters
[in,out]selfVector object
[in,out]aArray of vectors for dot product [n]
[in]nLength of vector array
Returns
\( \sum_i self_i a(j)_i \)

◆ cvec_mult_cvec()

subroutine cvec_mult_cvec ( class(oft_native_cvector), intent(inout)  self,
class(oft_cvector), intent(inout), target  a,
logical, intent(in), optional  div_flag 
)
private

Elementwise multiplication with another vector.

\( self_i = self_i * a_i \)

Parameters
[in,out]selfVector object
[in,out]avector for multiplication
[in]div_flagDivide instead of multiply?

◆ cvec_mult_vec()

subroutine cvec_mult_vec ( class(oft_native_cvector), intent(inout)  self,
class(oft_vector), intent(inout), target  a,
logical, intent(in), optional  div_flag 
)
private

Elementwise multiplication with another vector.

\( self_i = self_i * a_i \)

Parameters
[in,out]selfVector object
[in,out]avector for multiplication
[in]div_flagDivide instead of multiply?

◆ cvec_new_cvec()

subroutine cvec_new_cvec ( class(oft_native_cvector), intent(in)  self,
class(oft_cvector), intent(out), pointer  new 
)
private

Create a new vector as a bare copy of self

Parameters
[in]selfVector object
[out]newNew vector

◆ cvec_new_vec()

subroutine cvec_new_vec ( class(oft_native_cvector), intent(in)  self,
class(oft_vector), intent(out), pointer  new 
)
private

Create a new vector as a bare copy of self

Parameters
[in]selfVector object
[out]newNew vector

◆ cvec_norm()

real(r8) function cvec_norm ( class(oft_native_cvector), intent(inout)  self,
integer(i4), intent(in)  itype 
)
private

Compute norm of vector.

Parameters
[in,out]selfVector object
[in]itypeType of norm (1-> 1-norm, 2-> 2-norm, 3-> Inf-norm)
Returns
Specified norm of vector

◆ cvec_restore_local()

subroutine cvec_restore_local ( class(oft_native_cvector), intent(inout)  self,
complex(c8), dimension(:), intent(in)  array,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  add,
logical, intent(in), optional  wait 
)
private

Set/add local values to vector.

Parameters
[in,out]selfVector object
[in]arrayLocal values
[in]iblockSub-block to restore
[in]addAdd values instead of replace
[in]waitWait to perform global sync?

◆ cvec_restore_slice()

subroutine cvec_restore_slice ( class(oft_native_cvector), intent(inout)  self,
complex(c8), dimension(:), intent(in)  array,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  wait 
)
private

Set/add values for locally-owned portion of vector (slice)

Parameters
[in,out]selfVector object
[in]arraySlice values
[in]iblockSub-block to restore
[in]waitWait to perform global sync?

◆ cvec_scale()

subroutine cvec_scale ( class(oft_native_cvector), intent(inout)  self,
complex(c8), intent(in)  alpha 
)
private

Scale vector by a scalar.

Parameters
[in,out]selfVector object
[in]alphaScale factor

◆ cvec_set()

subroutine cvec_set ( class(oft_native_cvector), intent(inout)  self,
complex(c8), intent(in)  alpha,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  random 
)
private

Set all elements to a scalar.

Parameters
[in,out]selfVector object
[in]alphaUpdated vector value
[in]iblockVector sub-block to act on
[in]randomSet to random number, if true alpha is ignored (optional)

◆ cvec_stitch()

subroutine cvec_stitch ( class(oft_native_cvector), intent(inout)  self,
integer(i4), intent(in)  up_method 
)
private

Finalize vector.

Parameters
[in,out]selfVector object

◆ cvec_sum()

complex(c8) function cvec_sum ( class(oft_native_cvector), intent(inout)  self)
private

Sum reduction over vector.

Parameters
[in,out]selfVector object
Returns
Sum of vector elements

◆ dense_cmat_add_values()

subroutine dense_cmat_add_values ( class(oft_native_dense_cmatrix), intent(inout)  self,
integer(i4), dimension(n), intent(in)  i_inds,
integer(i4), dimension(m), intent(in)  j_inds,
complex(c8), dimension(n,m), intent(in)  b,
integer(i4), intent(in)  n,
integer(i4), intent(in)  m,
integer(i4), intent(in), optional  iblock,
integer(i4), intent(in), optional  jblock,
integer(i4), dimension(n,m), intent(inout), optional  loc_cache 
)
private

Add values to a matrix.

Parameters
[in]i_indsRow indices of entries to add [n]
[in]j_indsColumn indices of entries to add [m]
[in]bValues to add [n,m]
[in]nNumber of rows in local matrix
[in]mNumber of columns in local matrix
[in]iblockRow block (optional)
[in]jblockColumn block (optional)
[in,out]loc_cacheCache of entry locations

◆ dense_cmat_apply_cvec()

subroutine dense_cmat_apply_cvec ( class(oft_native_dense_cmatrix), intent(inout)  self,
class(oft_cvector), intent(inout), target  a,
class(oft_cvector), intent(inout)  b 
)
private

Apply the matrix to a field.

b = self * a

Parameters
[in,out]aSource field
[in,out]bResult of matrix product

◆ dense_cmat_apply_vec()

subroutine dense_cmat_apply_vec ( class(oft_native_dense_cmatrix), intent(inout)  self,
class(oft_vector), intent(inout), target  a,
class(oft_cvector), intent(inout)  b 
)
private

Apply the matrix to a field.

b = self * a

Parameters
[in,out]aSource field
[in,out]bResult of matrix product

◆ dense_cmat_applyt_cvec()

subroutine dense_cmat_applyt_cvec ( class(oft_native_dense_cmatrix), intent(inout)  self,
class(oft_cvector), intent(inout), target  a,
class(oft_cvector), intent(inout)  b 
)
private

Apply the matrix to a field.

b = self * a

Parameters
[in,out]aSource field
[in,out]bResult of matrix product

◆ dense_cmat_applyt_vec()

subroutine dense_cmat_applyt_vec ( class(oft_native_dense_cmatrix), intent(inout)  self,
class(oft_vector), intent(inout), target  a,
class(oft_cvector), intent(inout)  b 
)
private

Apply the matrix to a field.

b = self * a

Parameters
[in,out]aSource field
[in,out]bResult of matrix product

◆ dense_cmat_assemble()

subroutine dense_cmat_assemble ( class(oft_native_dense_cmatrix), intent(inout)  self,
class(oft_cvector), intent(inout), optional, target  diag 
)
private

Finish assembly of matrix and optionally extract diagonals.

Parameters
[in,out]diagDiagonal entries of matrix [nr] (optional)

◆ dense_cmat_atomic_add_values()

subroutine dense_cmat_atomic_add_values ( class(oft_native_dense_cmatrix), intent(inout)  self,
integer(i4), dimension(n), intent(in)  i_inds,
integer(i4), dimension(m), intent(in)  j_inds,
complex(c8), dimension(n,m), intent(in)  b,
integer(i4), intent(in)  n,
integer(i4), intent(in)  m,
integer(i4), intent(in), optional  iblock,
integer(i4), intent(in), optional  jblock,
integer(i4), dimension(n,m), intent(inout), optional  loc_cache 
)
private

Add values to a matrix.

Parameters
[in]i_indsRow indices of entries to add [n]
[in]j_indsColumn indices of entries to add [m]
[in]bValues to add [n,m]
[in]nNumber of rows in local matrix
[in]mNumber of columns in local matrix
[in]iblockRow block (optional)
[in]jblockColumn block (optional)
[in,out]loc_cacheCache of entry locations

◆ dense_cmat_delete()

subroutine dense_cmat_delete ( class(oft_native_dense_cmatrix), intent(inout)  self)
private

Delete matrix.

◆ dense_cmat_set_values()

subroutine dense_cmat_set_values ( class(oft_native_dense_cmatrix), intent(inout)  self,
integer(i4), dimension(n), intent(in)  i_inds,
integer(i4), dimension(m), intent(in)  j_inds,
complex(c8), dimension(n,m), intent(in)  b,
integer(i4), intent(in)  n,
integer(i4), intent(in)  m,
integer(i4), intent(in), optional  iblock,
integer(i4), intent(in), optional  jblock 
)
private

Set values of a matrix.

Parameters
[in]i_indsRow indices of entries to set [n]
[in]j_indsColumn indices of entries to set [m]
[in]bValues to set [n,m]
[in]nNumber of rows in local matrix
[in]mNumber of columns in local matrix
[in]iblockRow block (optional)
[in]jblockColumn block (optional)

◆ dense_cmat_zero()

subroutine dense_cmat_zero ( class(oft_native_dense_cmatrix), intent(inout)  self)
private

Zero all entries in matrix.

◆ dense_cmat_zero_cols()

subroutine dense_cmat_zero_cols ( class(oft_native_dense_cmatrix), intent(inout)  self,
integer(i4), intent(in)  ncols,
integer(i4), dimension(ncols), intent(in)  icols,
integer(i4), intent(in), optional  jblock,
logical, intent(in), optional  keep_diag 
)
private

Zero all entries in the specified columns.

Parameters
[in]ncolsNumber of columns to zero
[in]icolsIndices of columns to zero [ncols]
[in]jblockColumn block (optional)
[in]keep_diagKeep diagonal entries

◆ dense_cmat_zero_rows()

subroutine dense_cmat_zero_rows ( class(oft_native_dense_cmatrix), intent(inout)  self,
integer(i4), intent(in)  nrows,
integer(i4), dimension(nrows), intent(in)  irows,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  keep_diag 
)
private

Zero all entries in the specified rows.

Parameters
[in]nrowsNumber of rows to zero
[in]irowsIndices of rows to zero [nrows]
[in]iblockRow block (optional)
[in]keep_diagKeep diagonal entries

◆ dense_mat_add_values()

subroutine dense_mat_add_values ( class(oft_native_dense_matrix), intent(inout)  self,
integer(i4), dimension(n), intent(in)  i_inds,
integer(i4), dimension(m), intent(in)  j_inds,
real(r8), dimension(n,m), intent(in)  b,
integer(i4), intent(in)  n,
integer(i4), intent(in)  m,
integer(i4), intent(in), optional  iblock,
integer(i4), intent(in), optional  jblock,
integer(i4), dimension(n,m), intent(inout), optional  loc_cache 
)
private

Add values to a matrix.

Parameters
[in]i_indsRow indices of entries to add [n]
[in]j_indsColumn indices of entries to add [m]
[in]bValues to set [n,m]
[in]nNumber of rows in local matrix
[in]mNumber of columns in local matrix
[in]iblockRow block (optional)
[in]jblockColumn block (optional)
[in,out]loc_cacheCache of entry locations

◆ dense_mat_apply_cvec()

subroutine dense_mat_apply_cvec ( class(oft_native_dense_matrix), intent(inout)  self,
class(oft_cvector), intent(inout), target  a,
class(oft_cvector), intent(inout)  b 
)
private

Apply the matrix to a field.

b = self * a

Parameters
[in,out]aSource field
[in,out]bResult of matrix product

◆ dense_mat_apply_vec()

subroutine dense_mat_apply_vec ( class(oft_native_dense_matrix), intent(inout)  self,
class(oft_vector), intent(inout), target  a,
class(oft_vector), intent(inout)  b 
)
private

Apply the matrix to a field.

b = self * a

Parameters
[in,out]aSource field
[in,out]bResult of matrix product

◆ dense_mat_applyt_cvec()

subroutine dense_mat_applyt_cvec ( class(oft_native_dense_matrix), intent(inout)  self,
class(oft_cvector), intent(inout), target  a,
class(oft_cvector), intent(inout)  b 
)
private

Apply the matrix to a field.

b = self * a

Parameters
[in,out]aSource field
[in,out]bResult of matrix product

◆ dense_mat_applyt_vec()

subroutine dense_mat_applyt_vec ( class(oft_native_dense_matrix), intent(inout)  self,
class(oft_vector), intent(inout), target  a,
class(oft_vector), intent(inout)  b 
)
private

Apply the matrix to a field.

b = self * a

Parameters
[in,out]aSource field
[in,out]bResult of matrix product

◆ dense_mat_assemble()

subroutine dense_mat_assemble ( class(oft_native_dense_matrix), intent(inout)  self,
class(oft_vector), intent(inout), optional, target  diag 
)
private

Finish assembly of matrix and optionally extract diagonals.

Parameters
[in,out]diagDiagonal entries of matrix [nr] (optional)

◆ dense_mat_atomic_add_values()

subroutine dense_mat_atomic_add_values ( class(oft_native_dense_matrix), intent(inout)  self,
integer(i4), dimension(n), intent(in)  i_inds,
integer(i4), dimension(m), intent(in)  j_inds,
real(r8), dimension(n,m), intent(in)  b,
integer(i4), intent(in)  n,
integer(i4), intent(in)  m,
integer(i4), intent(in), optional  iblock,
integer(i4), intent(in), optional  jblock,
integer(i4), dimension(n,m), intent(inout), optional  loc_cache 
)
private

Add values to a matrix.

Parameters
[in]i_indsRow indices of entries to add [n]
[in]j_indsColumn indices of entries to add [m]
[in]bValues to set [n,m]
[in]nNumber of rows in local matrix
[in]mNumber of columns in local matrix
[in]iblockRow block (optional)
[in]jblockColumn block (optional)
[in,out]loc_cacheCache of entry locations

◆ dense_mat_delete()

subroutine dense_mat_delete ( class(oft_native_dense_matrix), intent(inout)  self)
private

Delete matrix.

◆ dense_mat_set_values()

subroutine dense_mat_set_values ( class(oft_native_dense_matrix), intent(inout)  self,
integer(i4), dimension(n), intent(in)  i_inds,
integer(i4), dimension(m), intent(in)  j_inds,
real(r8), dimension(n,m), intent(in)  b,
integer(i4), intent(in)  n,
integer(i4), intent(in)  m,
integer(i4), intent(in), optional  iblock,
integer(i4), intent(in), optional  jblock 
)
private

Set values of a matrix.

Parameters
[in]i_indsRow indices of entries to set [n]
[in]j_indsColumn indices of entries to set [m]
[in]bValues to set [n,m]
[in]nNumber of rows in local matrix
[in]mNumber of columns in local matrix
[in]iblockRow block (optional)
[in]jblockColumn block (optional)

◆ dense_mat_zero()

subroutine dense_mat_zero ( class(oft_native_dense_matrix), intent(inout)  self)
private

Zero all entries in matrix.

◆ dense_mat_zero_cols()

subroutine dense_mat_zero_cols ( class(oft_native_dense_matrix), intent(inout)  self,
integer(i4), intent(in)  ncols,
integer(i4), dimension(ncols), intent(in)  icols,
integer(i4), intent(in), optional  jblock,
logical, intent(in), optional  keep_diag 
)
private

Zero all entries in the specified columns.

Parameters
[in]ncolsNumber of columns to zero
[in]icolsIndices of columns to zero [ncols]
[in]jblockColumn block (optional)
[in]keep_diagKeep diagonal entries

◆ dense_mat_zero_rows()

subroutine dense_mat_zero_rows ( class(oft_native_dense_matrix), intent(inout)  self,
integer(i4), intent(in)  nrows,
integer(i4), dimension(nrows), intent(in)  irows,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  keep_diag 
)
private

Zero all entries in the specified rows.

Parameters
[in]nrowsNumber of rows to zero
[in]irowsIndices of rows to zero [nrows]
[in]iblockRow block (optional)
[in]keep_diagKeep diagonal entries

◆ mat_add_values()

subroutine mat_add_values ( class(oft_native_matrix), intent(inout)  self,
integer(i4), dimension(n), intent(in)  i_inds,
integer(i4), dimension(m), intent(in)  j_inds,
real(r8), dimension(n,m), intent(in)  b,
integer(i4), intent(in)  n,
integer(i4), intent(in)  m,
integer(i4), intent(in), optional  iblock,
integer(i4), intent(in), optional  jblock,
integer(i4), dimension(n,m), intent(inout), optional  loc_cache 
)
private

Add values to a matrix.

Parameters
[in,out]selfMatrix object
[in]i_indsRow indices of entries to add [n]
[in]j_indsColumn indices of entries to add [m]
[in]bValues to set [n,m]
[in]nNumber of rows in local matrix
[in]mNumber of columns in local matrix
[in]iblockRow block (optional)
[in]jblockColumn block (optional)
[in,out]loc_cacheCache of entry locations

◆ mat_apply_cvec()

subroutine mat_apply_cvec ( class(oft_native_matrix), intent(inout)  self,
class(oft_cvector), intent(inout), target  a,
class(oft_cvector), intent(inout)  b 
)
private

Compute matrix-vector product (complex)

b = self * a

Parameters
[in,out]selfMatrix object
[in,out]aSource vector
[in,out]bResult of matrix product

◆ mat_apply_vec()

subroutine mat_apply_vec ( class(oft_native_matrix), intent(inout)  self,
class(oft_vector), intent(inout), target  a,
class(oft_vector), intent(inout)  b 
)
private

Compute matrix-vector product.

b = self * a

Parameters
[in,out]selfMatrix object
[in,out]aSource vector
[in,out]bResult of matrix product

◆ mat_applyt_cvec()

subroutine mat_applyt_cvec ( class(oft_native_matrix), intent(inout)  self,
class(oft_cvector), intent(inout), target  a,
class(oft_cvector), intent(inout)  b 
)
private

Apply matrix vector product for matrix transpose (complex vector)

b = self^T * a

Parameters
[in,out]selfMatrix object
[in,out]aSource vector
[in,out]bResult of matrix product

◆ mat_applyt_vec()

subroutine mat_applyt_vec ( class(oft_native_matrix), intent(inout)  self,
class(oft_vector), intent(inout), target  a,
class(oft_vector), intent(inout)  b 
)
private

Apply matrix vector product for matrix transpose.

b = self^T * a

Parameters
[in,out]selfMatrix object
[in,out]aSource vector
[in,out]bResult of matrix product

◆ mat_assemble()

subroutine mat_assemble ( class(oft_native_matrix), intent(inout)  self,
class(oft_vector), intent(inout), optional, target  diag 
)
private

Finish assembly of matrix and optionally extract diagonals.

Parameters
[in,out]selfMatrix object
[in,out]diagDiagonal entries of matrix [nr] (optional)

◆ mat_atomic_add_values()

subroutine mat_atomic_add_values ( class(oft_native_matrix), intent(inout)  self,
integer(i4), dimension(n), intent(in)  i_inds,
integer(i4), dimension(m), intent(in)  j_inds,
real(r8), dimension(n,m), intent(in)  b,
integer(i4), intent(in)  n,
integer(i4), intent(in)  m,
integer(i4), intent(in), optional  iblock,
integer(i4), intent(in), optional  jblock,
integer(i4), dimension(n,m), intent(inout), optional  loc_cache 
)
private

Add values to a matrix.

Parameters
[in]i_indsRow indices of entries to add [n]
[in]j_indsColumn indices of entries to add [m]
[in]bValues to set [n,m]
[in]nNumber of rows in local matrix
[in]mNumber of columns in local matrix
[in]iblockRow block (optional)
[in]jblockColumn block (optional)
[in,out]loc_cacheCache of entry locations

◆ mat_delete()

subroutine mat_delete ( class(oft_native_matrix), intent(inout)  self)
private

Delete matrix.

◆ mat_set_values()

subroutine mat_set_values ( class(oft_native_matrix), intent(inout)  self,
integer(i4), dimension(n), intent(in)  i_inds,
integer(i4), dimension(m), intent(in)  j_inds,
real(r8), dimension(n,m), intent(in)  b,
integer(i4), intent(in)  n,
integer(i4), intent(in)  m,
integer(i4), intent(in), optional  iblock,
integer(i4), intent(in), optional  jblock 
)
private

Set values of a matrix.

Parameters
[in,out]selfMatrix object
[in]i_indsRow indices of entries to set [n]
[in]j_indsColumn indices of entries to set [m]
[in]bValues to set [n,m]
[in]nNumber of rows in local matrix
[in]mNumber of columns in local matrix
[in]iblockRow block (optional)
[in]jblockColumn block (optional)

◆ mat_zero()

subroutine mat_zero ( class(oft_native_matrix), intent(inout)  self)
private

Zero all entries in matrix.

Parameters
[in,out]selfMatrix object

◆ mat_zero_cols()

subroutine mat_zero_cols ( class(oft_native_matrix), intent(inout)  self,
integer(i4), intent(in)  ncols,
integer(i4), dimension(ncols), intent(in)  icols,
integer(i4), intent(in), optional  jblock,
logical, intent(in), optional  keep_diag 
)
private

Zero all entries in the specified columns.

Parameters
[in]ncolsNumber of columns to zero
[in]icolsIndices of columns to zero [ncols]
[in]jblockColumn block (optional)
[in]keep_diagKeep diagonal entries

◆ mat_zero_rows()

subroutine mat_zero_rows ( class(oft_native_matrix), intent(inout)  self,
integer(i4), intent(in)  nrows,
integer(i4), dimension(nrows), intent(in)  irows,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  keep_diag 
)
private

Zero all entries in the specified rows.

Parameters
[in,out]selfMatrix object
[in]nrowsNumber of rows to zero
[in]irowsIndices of rows to zero [nrows]
[in]iblockRow block (optional)
[in]keep_diagKeep diagonal entries

◆ matrix_update_slice()

subroutine matrix_update_slice ( class(oft_native_matrix), intent(inout)  self)
private

Update full local matrix with values from other processors.

◆ native_cmatrix_cast()

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

Parameters
[out]selfPointer to cast crsmatrix
[in]sourceSource matrix to cast

◆ native_cvector_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.

Parameters
[out]selfCast pointer
[in]sourceAbstract vector object
Returns
Cast success flag

◆ native_matrix_cast()

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.

Parameters
[out]selfReference to source object with desired class
[in]sourceAbstract vector object
Returns
Cast success flag

◆ native_matrix_setup_full()

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.

  • Create stitching structures
    Parameters
    [in,out]uConstructed vector for parent row space

◆ native_vector_cast()

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.

Parameters
[out]selfCast pointer
[in]sourceAbstract vector object
Returns
Cast success flag

◆ native_vector_slice_pop()

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.

Note
The restart structure should be setup first using a call to vector_slice_push
Parameters
[in,out]selfDestination vector
[in]igGlobal indices for self
[in,out]rst_infoRestart structure for output

◆ native_vector_slice_push()

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.

Parameters
[in]selfSource vector
[in]igGlobal indices for self
[out]rst_infoRestart structure for output
[in]alloc_onlyAllocate and setup data structures only (optional)

◆ partition_graph()

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)

Parameters
[in,out]graphGraph to partition
[in]nDesired number of partitions
[in,out]partArray of partition ID for each element [graphnr]

◆ submatrix_delete()

subroutine submatrix_delete ( class(oft_native_submatrix), intent(inout)  self)
private

Delete matrix.

◆ submatrix_setup()

subroutine submatrix_setup ( class(oft_native_submatrix), intent(inout)  self,
class(oft_matrix), intent(inout)  mat,
class(oft_vector), intent(inout)  u,
integer(i4), intent(in), optional  slice,
integer(i4), dimension(:), intent(in), optional, target  part 
)
private

Setup local submatrix from parent matrix.

  • Create stitching structures for parent matrix if necessary
    Parameters
    [in,out]matParent matrix
    [in,out]uConstructed vector for parent row space
    [in]sliceIndex of field slice to use (optional)
    [in]partArray of elements to define submatrix [:] (optional)

◆ submatrix_update_slice()

subroutine submatrix_update_slice ( class(oft_native_submatrix), intent(inout)  self)
private

Update matrix with values from parent matrix.

◆ vec_add()

subroutine vec_add ( class(oft_native_vector), intent(inout)  self,
real(r8), intent(in)  gamma,
real(r8), intent(in)  alpha,
class(oft_vector), intent(inout), target  a,
real(r8), intent(in), optional  beta,
class(oft_vector), intent(inout), optional, target  b 
)
private

Add vectors.

self = \( \gamma \) self + \( \alpha \) a + \( \beta \) b

Parameters
[in,out]selfVector object
[in]gammaScale of source vector
[in]alphaScale of first vector
[in,out]aFirst vector to add
[in]betaScale of second vector (optional)
[in,out]bSecond vector to add (optional)

◆ vec_delete()

subroutine vec_delete ( class(oft_native_vector), intent(inout)  self)
private

Finalize vector.

Parameters
[in,out]selfVector object

◆ vec_dot_cvec()

complex(c8) function vec_dot_cvec ( class(oft_native_vector), intent(inout)  self,
class(oft_cvector), intent(inout), target  a 
)
private

Dot product with a complex vector.

Parameters
[in,out]selfVector object
[in,out]aSecond vector for dot product
Returns
\( \sum_i self_i a_i \)

◆ vec_dot_vec()

real(r8) function vec_dot_vec ( class(oft_native_vector), intent(inout)  self,
class(oft_vector), intent(inout), target  a 
)
private

Dot product with a vector.

Parameters
[in,out]selfVector object
[in,out]aSecond vector for dot product
Returns
\( \sum_i self_i a_i \)

◆ vec_get_local()

subroutine vec_get_local ( class(oft_native_vector), intent(inout)  self,
real(r8), dimension(:), intent(inout), pointer  array,
integer(i4), intent(in), optional  iblock 
)
private

Get local values from vector.

Parameters
[in,out]selfVector object
[in,out]arrayLocal values
[in]iblockSub-block to retrieve

◆ vec_get_slice()

subroutine vec_get_slice ( class(oft_native_vector), intent(inout)  self,
real(r8), dimension(:), intent(inout), pointer  array,
integer(i4), intent(in), optional  iblock 
)
private

Get values for locally-owned portion of vector (slice)

Parameters
[in,out]selfVector object
[in,out]arraySlice values
[in]iblockSub-block to retrieve

◆ vec_mdot_cvec()

complex(c8) function, dimension(n) vec_mdot_cvec ( class(oft_native_vector), intent(inout)  self,
type(oft_cvector_ptr), dimension(n), intent(inout)  a,
integer(i4), intent(in)  n 
)
private

Dot product with an array of complex vectors.

Parameters
[in,out]selfVector object
[in,out]aArray of vectors for dot product [n]
[in]nLength of vector array
Returns
\( \sum_i self_i a(j)_i \)

◆ vec_mdot_vec()

real(r8) function, dimension(n) vec_mdot_vec ( class(oft_native_vector), intent(inout)  self,
type(oft_vector_ptr), dimension(n), intent(inout)  a,
integer(i4), intent(in)  n 
)
private

Dot product with an array of vectors.

Parameters
[in,out]selfVector object
[in,out]aArray of vectors for dot product [n]
[in]nLength of vector array
Returns
\( \sum_i self_i a(j)_i \)

◆ vec_mult()

subroutine vec_mult ( class(oft_native_vector), intent(inout)  self,
class(oft_vector), intent(inout), target  a,
logical, intent(in), optional  div_flag 
)
private

Elementwise multiplication with another vector.

\( self_i = self_i * a_i \)

Parameters
[in,out]selfVector object
[in,out]avector for multiplication
[in]div_flagDivide instead of multiply?

◆ vec_new_cvec()

subroutine vec_new_cvec ( class(oft_native_vector), intent(in)  self,
class(oft_cvector), intent(out), pointer  new 
)
private

Create a new complex vector as a bare copy of self

Parameters
[in]selfVector object
[out]newNew vector

◆ vec_new_vec()

subroutine vec_new_vec ( class(oft_native_vector), intent(in)  self,
class(oft_vector), intent(out), pointer  new 
)
private

Create a new vector as a bare copy of self

Parameters
[in]selfVector object
[out]newNew vector

◆ vec_norm()

real(r8) function vec_norm ( class(oft_native_vector), intent(inout)  self,
integer(i4), intent(in)  itype 
)
private

Compute norm of vector.

Parameters
[in,out]selfVector object
[in]itypeType of norm (1-> 1-norm, 2-> 2-norm, 3-> Inf-norm)
Returns
Specified norm of vector

◆ vec_restore_local()

subroutine vec_restore_local ( class(oft_native_vector), intent(inout)  self,
real(r8), dimension(:), intent(in)  array,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  add,
logical, intent(in), optional  wait 
)
private

Set/add local values to vector.

Parameters
[in,out]selfVector object
[in]arrayLocal values
[in]iblockSub-block to restore
[in]addAdd values instead of replace
[in]waitWait to perform global sync

◆ vec_restore_slice()

subroutine vec_restore_slice ( class(oft_native_vector), intent(inout)  self,
real(r8), dimension(:), intent(in)  array,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  wait 
)
private

Set/add values for locally-owned portion of vector (slice)

Parameters
[in,out]selfVector object
[in]arraySlice values
[in]iblockSub-block to restore
[in]waitWait to perform global sync?

◆ vec_scale()

subroutine vec_scale ( class(oft_native_vector), intent(inout)  self,
real(r8), intent(in)  alpha 
)
private

Scale vector by a scalar.

Parameters
[in,out]selfVector object
[in]alphaScale factor

◆ vec_set()

subroutine vec_set ( class(oft_native_vector), intent(inout)  self,
real(r8), intent(in)  alpha,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  random 
)
private

Set all elements to a scalar.

Parameters
[in,out]selfVector object
[in]alphaUpdated vector value
[in]iblockVector sub-block to act on
[in]randomSet to random number, if true alpha is ignored (optional)

◆ vec_stitch()

subroutine vec_stitch ( class(oft_native_vector), intent(inout)  self,
integer(i4), intent(in)  up_method 
)
private

Perform global stitching.

Parameters
[in,out]selfVector object
[in]up_methodType of stitching to perform

◆ vec_sum()

real(r8) function vec_sum ( class(oft_native_vector), intent(inout)  self)
private

Sum reduction over vector.

Parameters
[in,out]selfVector object
Returns
Sum of vector elements

Variable Documentation

◆ lc_offset

integer(i4), parameter lc_offset = HUGE(INT(1, 2))
private