DOUG 0.2
Functions/Subroutines | Variables

SpMtx_arrangement Module Reference

Functions/Subroutines

subroutine SpMtx_arrange (M, arrange_type, sort, nnz, nrows, ncols)
subroutine SpMtx_consolidate (M, add)
subroutine SpMtx_scale (M, A_ghost)
subroutine SpMtx_unscale (M)
subroutine SpMtx_build_refs (M, noffdels, rowstart, colnrs, colstart, rownrs)
subroutine SpMtx_build_refs_symm (A, noffdels, rowstart, colnrs, sortdown, diagstrong)
 build matrix reference arrays: for quick strong row reference, symmetric matrix case: rowstart(1:n+1), colnrs(1:noffdels)
subroutine SpMtx_roughly_aggregate (A, aggr, neighood, maxaggrsize, alpha)
 Finding rough aggregates.
subroutine SpMtx_Build_lggl (A, A_ghost, M)
recursive subroutine SpMtx_addFront (sendmask, A, M, i, p, ol)
 A helper procedure for marking all nodes within overlap distance in distribution mask.
subroutine SpMtx_distributeWithOverlap (A, b, M, ol)
 Distribute assembled matrix and RHS vector from master to slaves; distribute by taking overlap into account NOTE: as a sideeffect, the returned matrix is arranged by rows.
subroutine SpMtx_build_ghost (clr, ol, A, A_ghost, M, clrorder, clrstarts)
 Calculates overlap and then figures out which vector values need to be exchanged and which matrix values must be used in parallel matrix-vector multiplication and first level preconditioner.
subroutine SpMtx_build_ghost_v01 (clr, ol, A, A_ghost, M, clrorder, clrstarts)
subroutine SpMtx_buildAdjncy (A, nedges, xadj, adjncy)
subroutine SpMtx_buildAggrAdjncy (A, aggr, maxaggrsize, nedges, xadj, adjncy)
 Subroutine to build aggregates' adjacency.
subroutine SpMtx_SymmTest (A, eps)

Variables

logical, parameter arr_by_j = .true.
logical, parameter arr_by_i = .false.

Function/Subroutine Documentation

recursive subroutine SpMtx_arrangement::SpMtx_addFront ( integer(kind=1),dimension(:),pointer  sendmask,
type(SpMtx),intent(in)  A,
type(Mesh),intent(in)  M,
integer,intent(in)  i,
integer,intent(in)  p,
integer,intent(in)  ol 
)

A helper procedure for marking all nodes within overlap distance in distribution mask.

Parameters:
sendmaskdistribution mask
Aoriginal matrix
Mmesh corresponding to A
ifreedom
pprocessor id (1..)
oloverlap, non-negative

Definition at line 870 of file SpMtx_arrangement.F90.

References globals::numprocs.

Referenced by SpMtx_distributeWithOverlap().

subroutine SpMtx_arrangement::SpMtx_arrange ( Type(SpMtx),intent(inout)  M,
integer,intent(in),optional  arrange_type,
logical,intent(in),optional  sort,
integer,intent(in),optional  nnz,
integer,intent(in),optional  nrows,
integer,intent(in),optional  ncols 
)
subroutine SpMtx_arrangement::SpMtx_build_ghost_v01 ( integer,intent(in)  clr,
integer,intent(in)  ol,
Type(SpMtx),intent(inout)  A,
Type(SpMtx),intent(inout)  A_ghost,
type(Mesh M,
integer,dimension(:),pointer  clrorder,
integer,dimension(:),pointer  clrstarts 
)
subroutine SpMtx_arrangement::SpMtx_Build_lggl ( type(SpMtx),intent(inout)  A,
type(SpMtx),intent(inout)  A_ghost,
type(Mesh M 
)
subroutine SpMtx_arrangement::SpMtx_build_refs ( Type(SpMtx),intent(inout)  M,
integer,intent(out)  noffdels,
integer,dimension(:),pointer  rowstart,
integer,dimension(:),pointer  colnrs,
integer,dimension(:),pointer  colstart,
integer,dimension(:),pointer  rownrs 
)

Definition at line 396 of file SpMtx_arrangement.F90.

subroutine SpMtx_arrangement::SpMtx_build_refs_symm ( Type(SpMtx),intent(inout)  A,
integer,intent(out)  noffdels,
integer,dimension(:),pointer  rowstart,
integer,dimension(:),pointer  colnrs,
logical,intent(in),optional  sortdown,
logical,dimension(:),optional,pointer  diagstrong 
)

build matrix reference arrays: for quick strong row reference, symmetric matrix case: rowstart(1:n+1), colnrs(1:noffdels)

Definition at line 461 of file SpMtx_arrangement.F90.

Referenced by SpMtx_aggregation::SpMtx_aggregate(), and SpMtx_roughly_aggregate().

subroutine SpMtx_arrangement::SpMtx_buildAdjncy ( type(SpMtx),intent(inout)  A,
integer,intent(out)  nedges,
integer,dimension(:),pointer  xadj,
integer,dimension(:),pointer  adjncy 
)

Definition at line 2507 of file SpMtx_arrangement.F90.

subroutine SpMtx_arrangement::SpMtx_buildAggrAdjncy ( type(SpMtx),intent(inout)  A,
type(AggrInfo),intent(in)  aggr,
integer,intent(in)  maxaggrsize,
integer,intent(out)  nedges,
integer,dimension(:),pointer  xadj,
integer,dimension(:),pointer  adjncy 
)

Subroutine to build aggregates' adjacency.

Parameters:
aggraggregates

Definition at line 2558 of file SpMtx_arrangement.F90.

References or().

Referenced by Partitioning_metis_mod::Partitionings_metis_InitCoarse().

subroutine SpMtx_arrangement::SpMtx_consolidate ( Type(SpMtx),intent(inout)  M,
logical  add 
)
subroutine SpMtx_arrangement::SpMtx_distributeWithOverlap ( type(SpMtx),intent(inout)  A,
float(kind=rk),dimension(:),pointer  b,
type(Mesh),intent(in)  M,
integer,intent(in)  ol 
)

Distribute assembled matrix and RHS vector from master to slaves; distribute by taking overlap into account NOTE: as a sideeffect, the returned matrix is arranged by rows.

Parameters:
Aoriginal matrix in case of master; in case of slave matrix data is ignored but structure (dimensions, symmetry, etc) should be initialized
boriginal RHS vector in case of master; in case of slave, b should be large enough to contain whole RHS (contents are ignored)
Mmesh corresponding to A
oloverlap

Definition at line 895 of file SpMtx_arrangement.F90.

References SpMtx_class::D_SpMtx_ARRNG_ROWS, DOUG_utils::DOUG_abort(), DOUG_utils::ismaster(), globals::MPI_fkind, globals::myrank, globals::numprocs, RealKind::rk, globals::sctls, SpMtx_addFront(), SpMtx_arrange(), and globals::stream.

subroutine SpMtx_arrangement::SpMtx_roughly_aggregate ( Type(SpMtx),intent(inout)  A,
type(AggrInfo),intent(out)  aggr,
integer,intent(in)  neighood,
integer,intent(in)  maxaggrsize,
float(kind=rk),intent(in)  alpha 
)
subroutine SpMtx_arrangement::SpMtx_scale ( Type(SpMtx),intent(inout)  M,
Type(SpMtx),intent(inout),optional  A_ghost 
)
subroutine SpMtx_arrangement::SpMtx_SymmTest ( type(SpMtx),intent(in)  A,
real(kind=rk),optional  eps 
)
subroutine SpMtx_arrangement::SpMtx_unscale ( Type(SpMtx),intent(inout)  M)

Variable Documentation

logical,parameter SpMtx_arrangement::arr_by_i = .false.

Definition at line 45 of file SpMtx_arrangement.F90.

logical,parameter SpMtx_arrangement::arr_by_j = .true.

Definition at line 45 of file SpMtx_arrangement.F90.