The Open FUSION Toolkit 1.0.0-beta6
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
native_la.F90 File Reference
#include "local.h"

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

Modules

module  oft_native_la
 Abstract field interfaces and native vector implementations.

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 full_restore_local (array_loc)
subroutine full_restore_local (array_loc)
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

◆ full_restore_local() [1/2]

subroutine full_restore_local ( complex(c8), dimension(:), intent(inout) array_loc)
private

◆ full_restore_local() [2/2]

subroutine full_restore_local ( real(r8), dimension(:), intent(inout) array_loc)
private