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
oft_la_utils Module Reference

Detailed Description

Matrix and vector management routines.

Authors
Chris Hansen
Date
December 2012

Data Types

interface  combine_matrices
 Combine a set of non-overlapping sub-matrices into a single matrix. More...
 
interface  create_matrix
 Create a matrix using a set of non-overlapping graphs. More...
 
interface  create_vector
 Create a new vector by combining a set of vectors. More...
 

Functions/Subroutines

subroutine combine_matrices_comp (mats, nr, nc, mat)
 Real implementation for combine_matrices.
 
subroutine combine_matrices_real (mats, nr, nc, mat)
 Real implementation for combine_matrices.
 
subroutine condense_graph (ingraphs, outgraph, maps, row_map, col_map)
 Combine a set of non-overlapping CRS-graphs into a graph.
 
subroutine condense_stitch (stitch_info, map, stitcher)
 Combine seam information for a set of vectors.
 
subroutine create_identity_graph (outgraph, vec)
 Create an identity graph for a given vector.
 
subroutine create_matrix_comp (mat, ingraphs, row_vec, col_vec, native)
 Real implementation for create_matrix.
 
subroutine create_matrix_real (mat, ingraphs, row_vec, col_vec, native)
 Real implementation for create_matrix.
 
subroutine create_vector_comp (vec, stitch_info, maps, native)
 Complex implementation for create_vector.
 
subroutine create_vector_real (vec, stitch_info, maps, native)
 Real implementation for create_vector.
 
subroutine csr_remove_redundant (nr, kr, nnz, lc)
 Needs Docs.
 
subroutine graph_add_dense_blocks (graph_in, graph_out, dense_flag, dense_nodes)
 Modify a CSR graph by adding dense blocks.
 
subroutine graph_add_full_col (graph_in, graph_out, nadd, nodes_add)
 Modify a CSR graph by adding dense columns at specified indices.
 

Function/Subroutine Documentation

◆ combine_matrices_comp()

subroutine combine_matrices_comp ( type(oft_cmatrix_ptr), dimension(:,:), intent(in)  mats,
integer(i4), intent(in)  nr,
integer(i4), intent(in)  nc,
class(oft_cmatrix), intent(inout), pointer  mat 
)

Real implementation for combine_matrices.

◆ combine_matrices_real()

subroutine combine_matrices_real ( type(oft_matrix_ptr), dimension(:,:), intent(in)  mats,
integer(i4), intent(in)  nr,
integer(i4), intent(in)  nc,
class(oft_matrix), intent(inout), pointer  mat 
)

Real implementation for combine_matrices.

◆ condense_graph()

subroutine condense_graph ( type(oft_graph_ptr), dimension(:,:), intent(in)  ingraphs,
type(oft_graph), intent(inout), pointer  outgraph,
type(oft_matrix_map), dimension(:,:), intent(out), pointer  maps,
type(oft_map), dimension(:), intent(in)  row_map,
type(oft_map), dimension(:), intent(in)  col_map 
)

Combine a set of non-overlapping CRS-graphs into a graph.

Parameters
[in]ingraphsArray of graphs representing submatrices
[in,out]outgraphResulting graph
[out]mapsMapping from sub-graphs into full graph
[in]row_mapVector representing matrix rows
[in]col_mapVector representing matrix rows

◆ condense_stitch()

subroutine condense_stitch ( type(seam_list), dimension(:), intent(in)  stitch_info,
type(oft_map), dimension(:), intent(in)  map,
type(oft_seam), intent(inout)  stitcher 
)

Combine seam information for a set of vectors.

Parameters
[in]stitch_infoArray of seam structures
[in]mapMapping from sub-vectors into full vector
[in,out]stitcherResulting seam structure for full vector

◆ create_identity_graph()

subroutine create_identity_graph ( type(oft_graph), intent(inout), pointer  outgraph,
class(oft_vector), intent(in), pointer  vec 
)

Create an identity graph for a given vector.

Parameters
[in,out]outgraphResulting graph
[in]vecVector representing matrix rows/columns

◆ create_matrix_comp()

subroutine create_matrix_comp ( class(oft_cmatrix), intent(inout), pointer  mat,
type(oft_graph_ptr), dimension(:,:), intent(in)  ingraphs,
class(oft_cvector), intent(in), pointer  row_vec,
class(oft_cvector), intent(in), pointer  col_vec,
logical, intent(in), optional  native 
)

Real implementation for create_matrix.

◆ create_matrix_real()

subroutine create_matrix_real ( class(oft_matrix), intent(inout), pointer  mat,
type(oft_graph_ptr), dimension(:,:), intent(in)  ingraphs,
class(oft_vector), intent(in), pointer  row_vec,
class(oft_vector), intent(in), pointer  col_vec,
logical, intent(in), optional  native 
)

Real implementation for create_matrix.

◆ create_vector_comp()

subroutine create_vector_comp ( class(oft_cvector), intent(inout), pointer  vec,
type(seam_list), dimension(:), intent(inout)  stitch_info,
type(map_list), dimension(:), intent(inout)  maps,
logical, intent(in), optional  native 
)

Complex implementation for create_vector.

◆ create_vector_real()

subroutine create_vector_real ( class(oft_vector), intent(inout), pointer  vec,
type(seam_list), dimension(:), intent(inout)  stitch_info,
type(map_list), dimension(:), intent(inout)  maps,
logical, intent(in), optional  native 
)

Real implementation for create_vector.

◆ csr_remove_redundant()

subroutine csr_remove_redundant ( integer(4), intent(in)  nr,
integer(4), dimension(nr+1), intent(inout)  kr,
integer(4), intent(inout)  nnz,
integer(4), dimension(:), intent(inout), pointer  lc 
)

Needs Docs.

◆ graph_add_dense_blocks()

subroutine graph_add_dense_blocks ( type(oft_graph), intent(inout)  graph_in,
type(oft_graph), intent(inout)  graph_out,
integer(4), dimension(:), intent(in)  dense_flag,
type(oft_1d_int), dimension(:), intent(in)  dense_nodes 
)

Modify a CSR graph by adding dense blocks.

Parameters
[in,out]graph_inInput graph to augment
[in,out]graph_outOutput graph
[in]dense_flagIndex of dense blocks (0 for elements outside dense blocks)
[in]dense_nodesIndices for each dense block

◆ graph_add_full_col()

subroutine graph_add_full_col ( type(oft_graph), intent(inout)  graph_in,
type(oft_graph), intent(inout)  graph_out,
integer(4), intent(in)  nadd,
integer(4), dimension(nadd), intent(in)  nodes_add 
)

Modify a CSR graph by adding dense columns at specified indices.

Parameters
[in,out]graph_inInput graph to augment
[in,out]graph_outOutput graph
[in]naddNumber of columns to add
[in]nodes_addIndices of columns to add