|
DOUG 0.2
|
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. |
| 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.
| sendmask | distribution mask |
| A | original matrix |
| M | mesh corresponding to A |
| i | freedom |
| p | processor id (1..) |
| ol | overlap, 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 | ||
| ) |
Definition at line 58 of file SpMtx_arrangement.F90.
References SpMtx_class::D_SpMtx_ARRNG_COLS, SpMtx_class::D_SpMtx_ARRNG_ROWS, not, RealKind::rk, and globals::stream.
Referenced by SpMtx_op_AB::SpMtx_AB(), SpMtx_op_AB::SpMtx_AB2(), SpMtx_op_AB::SpMtx_AB_nonopt(), SpMtx_aggregation::SpMtx_aggregate(), SpMtx_op_Ax::SpMtx_arrangedAx(), SpMtx_consolidate(), SpMtx_distributeWithOverlap(), SpMtx_aggregation::SpMtx_find_strong(), SpMtx_distribution_mod::SpMtx_localize(), SpMtx_SymmTest(), and stationary_mod::SymGaussSeidel().
| 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 | ||
| ) |
Definition at line 1711 of file SpMtx_arrangement.F90.
References SpMtx_class::D_SpMtx_ARRNG_COLS, SpMtx_class::D_SpMtx_ARRNG_ROWS, DOUG_utils::DOUG_abort(), globals::myrank, globals::numprocs, DOUG_utils::quicksort(), RealKind::rk, globals::sctls, SpMtx_class::SpMtx_newInit(), and globals::stream.
| subroutine SpMtx_arrangement::SpMtx_Build_lggl | ( | type(SpMtx),intent(inout) | A, |
| type(SpMtx),intent(inout) | A_ghost, | ||
| type(Mesh) | M | ||
| ) |
Definition at line 744 of file SpMtx_arrangement.F90.
References DOUG_utils::DOUG_abort(), globals::sctls, and globals::stream.
Referenced by SpMtx_distribution_mod::SpMtx_localize().
| 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.
| aggr | aggregates |
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 | ||
| ) |
Definition at line 258 of file SpMtx_arrangement.F90.
References SpMtx_class::D_SpMtx_ARRNG_NO, and SpMtx_arrange().
Referenced by CoarseAllgathers::AllRecvCoarseMtx().
| 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.
| A | original matrix in case of master; in case of slave matrix data is ignored but structure (dimensions, symmetry, etc) should be initialized |
| b | original RHS vector in case of master; in case of slave, b should be large enough to contain whole RHS (contents are ignored) |
| M | mesh corresponding to A |
| ol | overlap |
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 | ||
| ) |
Finding rough aggregates.
| aggr | aggregates |
Definition at line 574 of file SpMtx_arrangement.F90.
References Aggregate_mod::AggrInfo_New(), Aggregate_mod::color_print_aggrs(), not, or(), DOUG_utils::random_permutation(), RealKind::rk, globals::sctls, SpMtx_build_refs_symm(), and globals::stream.
| subroutine SpMtx_arrangement::SpMtx_scale | ( | Type(SpMtx),intent(inout) | M, |
| Type(SpMtx),intent(inout),optional | A_ghost | ||
| ) |
Definition at line 298 of file SpMtx_arrangement.F90.
References globals::D_MSGLVL, SpMtx_class::D_SpMtx_SCALE_DIAG, SpMtx_class::D_SpMtx_SCALE_NO, SpMtx_class::D_SpMtx_SCALE_UNDEF, not, or(), RealKind::rk, and globals::stream.
Referenced by SpMtx_aggregation::SpMtx_find_strong().
| subroutine SpMtx_arrangement::SpMtx_SymmTest | ( | type(SpMtx),intent(in) | A, |
| real(kind=rk),optional | eps | ||
| ) |
Definition at line 2641 of file SpMtx_arrangement.F90.
References SpMtx_class::D_SpMtx_ARRNG_COLS, not, SpMtx_arrange(), SpMtx_class::SpMtx_Copy(), SpMtx_class::SpMtx_Destroy(), and globals::stream.
| subroutine SpMtx_arrangement::SpMtx_unscale | ( | Type(SpMtx),intent(inout) | M | ) |
Definition at line 350 of file SpMtx_arrangement.F90.
References globals::D_MSGLVL, SpMtx_class::D_SpMtx_SCALE_DIAG, SpMtx_class::D_SpMtx_SCALE_DIAG_FILTERED, SpMtx_class::D_SpMtx_SCALE_NO, or(), RealKind::rk, and globals::stream.
| 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.
1.7.3-20110217