Commit Graph

154 Commits (732a74c928a5c1c87d6781bb6ae234aae2339221)

Author SHA1 Message Date
Stack-1 acdd2e9eb5 [ADD] Nested (MATNEST-style) block matrix support and tests
Add a block-structured distributed operator that presents itself to Krylov
solvers and preconditioners as a single ordinary distributed matrix (the
PSBLAS analogue of PETSc MATNEST), targeting saddle-point systems
M = [[A, B^T], [B, 0]] with possibly rectangular sub-blocks.

Library (base/modules):
- psb_desc_nest_mod, psb_d_nest_mat_mod: grid of per-field descriptors and
  per-block sparse storage.
- psb_d_nest_base_mat_mod: psb_d_nest_base_mat, the operator extending
  psb_d_base_sparse_mat (local csmv, free, field-split hooks for a future
  block preconditioner).
- psb_cd_nest_tools_mod / psb_d_nest_tools_mod: composed global descriptor
  with union halo (psb_cd_nest_compose) and rectangular local block builder
  (psb_d_nest_rect_block), plus the per-block assembly wrappers.
- psb_d_nest_builder_mod: psb_d_nest_matrix, the user frontend with the
  init/ins/asb/free pattern hiding all descriptor/halo/compose/setup
  boilerplate.
- psb_d_nest_mod: umbrella module (use psb_d_nest_mod).

Remove the earlier bespoke per-block prototype (comm/psblas/vect modules and
the pde_nest_psblas test) superseded by the single MATNEST design.

Tests (test/nested): glob (square operator vs monolithic CSR oracle), rect
(genuinely rectangular blocks), cg (low-level path, ill-conditioned SPD
red-black Laplacian solved with standard CG), builder (same solve via the
utility), plus a README describing the design and usage. All pass serially
and in parallel, with results invariant to the process count.

Build hooks updated (autotools Makefiles + CMakeLists); the nested tests are
relocated out of test/pdegen into test/nested.

Author: Simone Staccone (Stack-1)
4 weeks ago
jalmerol b8d41569fd Add double-precision nested block-structured matrix/vector layer 1 month ago
Stack-1 f725ccdeeb Merge branch 'development' into communication_v2
# Conflicts:
#	base/CMakeLists.txt
#	base/comm/internals/psi_cswapdata.F90
#	base/comm/internals/psi_dswapdata.F90
#	base/comm/internals/psi_iswapdata.F90
#	base/comm/internals/psi_lswapdata.F90
#	base/comm/internals/psi_sswapdata.F90
#	base/comm/internals/psi_zswapdata.F90
#	base/modules/Makefile
#	base/modules/comm/psb_i2_comm_mod.f90
#	base/modules/comm/psi_i2_comm_v_mod.f90
#	base/modules/serial/psb_i2_base_vect_mod.F90
#	test/computational_routines/spmm/spmm_checker
1 month ago
Stack-1 4b8e4dd4a3 [UPDATE] Refactor after template update for RMA routines 1 month ago
sfilippone 09308b5c7d various changes, including test matrix generators 2 months ago
sfilippone 19ce4a0942 Fix multivect assembly and comments in base_vect 2 months ago
Stack-1 6b803fd759 [UPDATE] Updated buffer reuse in psb_dcg 3 months ago
Stack-1 09a5a74d75 [ADD] Added polymorphic comm_handle data excahnge for non-blocking and persistant neighbor communication. Check test/comm/ to see how it's used. For now works only for d types 3 months ago
sfilippone a223c7eaf3 Rebuild I2 supprot 3 months ago
Stack-1 02f1ef741c [] 4 months ago
sfilippone c990dc6840 Fix info in %reinit 4 months ago
sfilippone ca458870b1 Fix intent in precbld to align with AMG 4 months ago
sfilippone d2fba9e952 Fix licensing text 4 months ago
Marco Feder 303edfedc7 Fix return value 4 months ago
Stack-1 e7e8a69373 [FIX] Fixed compilation for psi_dswapdata routine 4 months ago
sfilippone 356bdba5c7 Fix intent on base_vect%reinit 4 months ago
sfilippone e8c5c0b8b0 Add clear argument to reinit method in vectors. 4 months ago
sfilippone 96ab382ce8 Fix vect_clone and define check_addr 5 months ago
sfilippone 897d466013 Define DESC%check_addr for debugging 5 months ago
sfilippone ac5512974b Fix vector allocation etc. 6 months ago
sfilippone 3337a12e59 Fix multivect handling 6 months ago
sfilippone c1ca1665e7 Fixes to vector status and build processing for dealii 7 months ago
sfilippone 5333117010 Fix vect_clone, expose to C interface 7 months ago
sfilippone 0c84efb887 Working version with mods for building with dealii requests 8 months ago
sfilippone 98a6eba948 First round of changes for vector builds 8 months ago
sfilippone 0239569e2b Final fixes for compilation with INTEL 10 months ago
sfilippone dc25c789ef Fixes for Intel compilation take 2. To be completed. 10 months ago
sfilippone 727dc13a98 First attempt at a fix for INTEL 10 months ago
Salvatore Filippone cc8cab0e8a Workaround for strange ipk8 issue 1 year ago
sfilippone 07fa2323eb Fixes for IPK8 1 year ago
sfilippone ea6c4181f7 Changed all defines with prefix PSB_ 1 year ago
sfilippone 3c53066a04 Walk back some generic method changes made for NVHPC. 1 year ago
sfilippone 55518f5553 Avoid specific method names' conflicts between vect and multivect. 1 year ago
sfilippone 4e71fa971c Modify clean_zeros and have it only at base% 2 years ago
sfilippone ee56c6be3c Cosmetic changes to OpenACC vectors 2 years ago
sfilippone 8220140729 Merged recent changes from development 2 years ago
sfilippone 3168b7e8f7 Merge branch 'development' into oacc_loloum 2 years ago
sfilippone 7857015923 Cosmetic changes to vect_mod 2 years ago
sfilippone 2982aaee27 Implementation in OpenACC for ELL and HLL into templates. Merge from development 2 years ago
sfilippone 4461b44eda Change name abgdxyz into upd_xyz 2 years ago
sfilippone ba8c32c507 Define merge_nd method 2 years ago
sfilippone 373d841bce Don't need renaming of psi_gth and psi_sct 2 years ago
sfilippone 86be8ebcd0 New method W%XYZW() 2 years ago
Salvatore Filippone f4c7604f61 Fix base implementation of abgdxyz to call set_host 2 years ago
Salvatore Filippone b8f9badf95 Fix interface between vect and base_vect%ABGD 2 years ago
Salvatore Filippone 2a40b82b58 Fix typo in base_vect_mod 2 years ago
Salvatore Filippone 4e611bb078 Enable psi_abgdxyz 2 years ago
sfilippone 45f00e6e19 Fixed comments 2 years ago
Salvatore Filippone 14c4ff0f32 Added new methd for two combined axpbys 2 years ago
sfilippone 3aa3c795e9 Refactor assembly and cnv 3 years ago