Commit Graph
1014 Commits
Author SHA1 Message Date
Stack-1 1244b640e0 [UPDATE] Merge communication_v2 into nested_matrix_type
Propagate the latest development (via communication_v2) onto the nested branch:
brings the GMRES refactor, the stopping-criterion change and the restored work
parameter on top of the nested (MATNEST) matrix support. Clean merge, no
conflicts.
2026-06-11 18:22:03 +02:00
Stack-1 7d4354feac Merge origin/development into communication_v2
Realign communication_v2 with the latest development (10 commits, including the
GMRES refactor and the stopping-criterion change), keeping the communication_v2
work intact.

Conflict resolution:
- base/modules/Makefile (veryclean): keep communication_v2's '/bin/rm -f *.h'.
- linsolve/impl/psb_{c,d,s,z}rgmres.f90: keep development's variable
  declaration (itmax_, naux), consistent with development's refactored GMRES
  body which references itmax_.
2026-06-11 18:07:28 +02:00
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)
2026-06-11 16:53:46 +02:00
sfilippone 8254b66140 Overzealous make clean 2026-06-11 15:20:29 +02:00
sfilippone 1c51cab1b5 Make desc_is_asb always a method 2026-06-10 13:52:23 +02:00
sfilippone 847e638123 Fix detail in base/modules/makefile 2026-06-10 13:51:18 +02:00
Stack-1 784c3cc0b4 Drop stale work argument from psb_d_nest_spsm
The nested layer was imported from an older base where the vector psb_spsm
still took a work buffer. communication_v2 removed work from the psb_x_vect_type
routines, so psb_dspsv_vect has no work argument and the call failed generic
resolution. Remove work from psb_d_nest_spsm (signature, declaration, call).
2026-06-05 12:45:00 +02:00
jalmerol b8d41569fd Add double-precision nested block-structured matrix/vector layer 2026-06-05 00:27:41 +02:00
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
2026-06-04 22:31:01 +02:00
Stack-1 2c65c50593 [ADD] Added single point of comm_scheme selection on descriptor 2026-05-27 15:24:43 +02:00
Stack-1 4b8e4dd4a3 [UPDATE] Refactor after template update for RMA routines 2026-05-26 13:14:19 +02:00
sfilippone 09308b5c7d various changes, including test matrix generators 2026-05-05 15:49:13 +02:00
sfilippone 19ce4a0942 Fix multivect assembly and comments in base_vect 2026-04-29 14:06:35 +02:00
Stack-1 fb5ba59693 [ADD] Added RMA one sided communication schemes 2026-04-24 15:10:06 +02:00
Stack-1 be6f27069a [UPDATE] Modified tests to supèport GPU SpMV computing, Moreover dinstinct routine for persistant is now present in psi_dswpadata 2026-04-21 14:56:47 +02:00
Stack-1 75d86864b0 [UPDATE] Minor changes to debug 2026-04-19 17:56:39 +02:00
sfilippone 3f83bc2918 Improve psb_exit handling of MPI communicators 2026-04-16 14:58:05 +02:00
sfilippone 19ffaaa915 Update dependencies for i2_vect_mod 2026-04-15 09:06:56 +02:00
Stack-1 6ba327854e [UPDATE] Changes in CG test, added debug 2026-04-13 22:23:31 +02:00
sfilippone 97299b8b3f Update VERSION file 2026-04-10 13:37:10 +02:00
Stack-1 6b803fd759 [UPDATE] Updated buffer reuse in psb_dcg 2026-04-09 14:54:14 +02:00
Stack-1 33477e4f03 [UPDATE] Changed all the interfaces that calls psi_swapdata inside PSBLAS internals for double precision vectors. Added also tests under test/comm/ in order to check psi_swapdata, psb_spmv and psb_cg calls 2026-04-03 16:02:34 +02:00
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 2026-04-02 20:28:33 +02:00
Salvatore Filippone 0a97ea2924 Fix makefile 2026-03-26 15:22:23 +01:00
Salvatore Filippone e717d2d228 Fix makefile dependencies 2026-03-24 16:11:02 +01:00
sfilippone a223c7eaf3 Rebuild I2 supprot 2026-03-24 15:42:12 +01:00
sfilippone 769c2f65bf Prepare i2 2026-03-24 09:51:10 +01:00
Salvatore Filippone eeeb450f0b Simplified build fix 2026-03-24 09:22:08 +01:00
sfilippone e1ab2bddf6 Fix import and build dependencies 2026-03-24 09:05:51 +01:00
Stack-1 2d388ce45e [FIX] Fixed compilation dependencies resulting in race condition when compiling using many threads. The problem was encountered usingg make -j30, now it compiles. 2026-03-24 07:51:09 +01:00
Stack-1 02f1ef741c [] 2026-03-23 11:00:35 +01:00
sfilippone c990dc6840 Fix info in %reinit 2026-03-20 13:55:33 +01:00
sfilippone ca458870b1 Fix intent in precbld to align with AMG 2026-03-20 13:55:17 +01:00
Stack-1 461a6a325f [UPDATE] Removed work/aux buffer from vector routines that use psb_x_vect_type encapsulation for data exchange 2026-03-19 17:36:44 +01:00
fdurastante 1ee1b83341 Added routine to extract single element from sparse matrix 2026-03-19 14:58:00 +01:00
sfilippone d2fba9e952 Fix licensing text 2026-03-18 14:49:55 +01:00
Marco Feder 303edfedc7 Fix return value 2026-03-18 10:48:38 +01:00
Stack-1 dc61cbb0a2 [UPDATE] Mid commit to fix dist_graph_create 2026-03-17 13:58:43 +01:00
federicamontes 476167577f aligned single precision -- psi_dswapdata and psi_sswapdata, removed _vidx_vect functions 2026-03-17 11:30:42 +01:00
Stack-1 e7e8a69373 [FIX] Fixed compilation for psi_dswapdata routine 2026-03-17 11:02:16 +01:00
federicamontes 5c87c78e69 feature(communication neigbor a2av)
refactored psi_d_comm_v_mod:
- added comments
2026-03-16 16:01:51 +01:00
sfilippone 884f7cb0b9 Merge branch 'development' of github.com:sfilippone/psblas3 into development 2026-03-13 14:09:24 +01:00
sfilippone 356bdba5c7 Fix intent on base_vect%reinit 2026-03-13 14:07:57 +01:00
sfilippone 7151c728db Final fixes 2026-03-13 12:17:50 +01:00
sfilippone 724345ab27 Rework use of icomm in halo and friends, add submodules 2026-03-13 11:27:32 +01:00
sfilippone bdee97e991 Fix use of MPI communicator 2026-03-12 17:30:21 +01:00
sfilippone e8c5c0b8b0 Add clear argument to reinit method in vectors. 2026-03-12 16:29:18 +01:00
sfilippone e2ddc08aea Merge branch 'development' of github.com:sfilippone/psblas3 into development 2026-03-10 10:15:11 +01:00
sfilippone 9c3084985a Cosmetic change in desc_const_mod 2026-03-10 10:14:08 +01:00
Salvatore Filippone 3d92668973 Change name of desc%get_list into desc%get_list_p 2026-02-12 12:54:50 +01:00