You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
psblas3/base/modules/serial
Stack-1 8e02a99a11 [ADD] Stock preconditioners, configurable block format and full base-class contract for the nested matrix
Complete the integration of the nested (MATNEST) operator into the standard
PSBLAS infrastructure:

- Preconditioners: implement get_diag and csgetrow on psb_d_nest_base_mat so
  the stock one-level preconditioners build directly on the nested operator
  (DIAG through the concatenated block diagonals, BJAC through the
  format-agnostic csget path used by the ILU factorizations).

- Configurable block storage: psb_d_nest_rect_block and psb_d_nest_matrix%asb
  accept an optional type ('CSR' default, 'CSC', 'COO') or mold (any class
  extending psb_d_base_sparse_mat, e.g. the psb_ext ELL/HLL formats); the
  operator is format-agnostic since every operation delegates to the blocks.

- Device-capable matvec: override vect_mv to gather/scatter through the
  vectors' own gth/sct with encapsulated index vectors (device kernels on
  device vectors) and to run each block through its vect_mv, so device block
  formats execute their native kernels; bit-equivalent to csmv on host.

- Full psb_d_base_sparse_mat contract by delegation to the blocks: transposed
  csmv (dedicated kernel, ghost contributions left to the transposed halo
  exchange), multi-RHS csmm, cp_to_coo/mv_to_coo (unlocking cscnv, csclip,
  tril/triu through the base generics), rowsum/arwsum/colsum/aclsum,
  maxval/spnmi/spnm1, scal (left/right) and scals, clone (view semantics:
  shared blocks, re-owned index maps), mold, sizeof.  cp_from_coo/mv_from_coo,
  csput and cssv/cssm are intentionally left to the base error (meaningless
  for a block-operator view), documented in the type and in the README.

Tests: glob assembles the blocks in HLL (psb_ext) and rect in CSC, both still
bit-identical to the monolithic CSR oracle; the CG test solves under NONE,
DIAG and BJAC/ILU(0), requiring convergence to the exact solution for all of
them and DIAG bit-identical to NONE (exactness check of the nested get_diag).
README updated with the user API reference, the preconditioner section and
the implemented-contract section.

Author: Simone Staccone (Stack-1)
2 weeks ago
..
psb_base_mat_mod.F90 Fix licensing text 3 months ago
psb_c_base_mat_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_c_base_vect_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_c_csc_mat_mod.f90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_c_csr_mat_mod.f90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_c_mat_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_c_serial_mod.f90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_c_vect_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_d_base_mat_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_d_base_vect_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_d_csc_mat_mod.f90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_d_csr_mat_mod.f90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_d_mat_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_d_nest_base_mat_mod.F90 [ADD] Stock preconditioners, configurable block format and full base-class contract for the nested matrix 2 weeks ago
psb_d_nest_mat_mod.f90 [ADD] Nested (MATNEST-style) block matrix support and tests 2 weeks ago
psb_d_serial_mod.f90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_d_vect_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_i2_base_vect_mod.F90 Merge branch 'development' into communication_v2 3 weeks ago
psb_i2_vect_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_i_base_vect_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_i_vect_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_l_base_vect_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_l_vect_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_mat_mod.f90 New clear_defaults function, use it in psb_exit 6 years ago
psb_s_base_mat_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_s_base_vect_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_s_csc_mat_mod.f90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_s_csr_mat_mod.f90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_s_mat_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_s_serial_mod.f90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_s_vect_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_serial_mod.f90 Fix licensing text 3 months ago
psb_vect_mod.f90 Rebuild I2 supprot 3 months ago
psb_z_base_mat_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_z_base_vect_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_z_csc_mat_mod.f90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_z_csr_mat_mod.f90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_z_mat_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_z_serial_mod.f90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago
psb_z_vect_mod.F90 [UPDATE] Refactor after template update for RMA routines 4 weeks ago