Commit Graph
77 Commits
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)
2026-06-11 16:53:46 +02:00
sfilippone 3965c3a526 Modified psb_config and machinery for better C interfacing 2026-01-22 13:44:28 +01:00
sfilippone fd58bb581e Improve dependencies in main makefile 2026-01-19 09:50:44 +01:00
sfilippone d7b22f0538 Fix string_c2f 2026-01-15 11:35:05 +01:00
sfilippone b4ad5a4288 Fix build process 2026-01-08 13:27:16 +01:00
sfilippone 43fcc53344 Final (hopefully) version of Makefile dependencies 2025-11-24 17:00:39 +01:00
sfilippone 24a85013ab Further fixes for Makefile dependencies 2025-11-22 19:42:32 +01:00
Salvatore Filippone dbc3c59e53 Improve Makefile dependencies 2025-11-22 12:04:53 +01:00
sfilippone 0432f8c876 Fix dependencies in main Makefile 2025-11-22 11:27:08 +01:00
sfilippone d887d5ee8a Split mods from impl in build process 2025-11-21 15:13:10 +01:00
sfilippone 503c1e575f Cleanup dependencies in main makefile 2025-03-27 11:59:19 +01:00
Salvatore Filippone 1ded01bb1a Further fixes on main makefile 2025-03-23 11:35:57 +01:00
Salvatore Filippone df6dc1bb3e Fix typo in makefile 2025-03-23 11:34:37 +01:00
Salvatore Filippone 7201e511be Renamed into test/pdegen, also in the C interface 2025-03-23 11:25:48 +01:00
sfilippone f112e42deb Main Makefile fixes 2025-03-14 18:49:10 +01:00
sfilippone fd90ecb643 Move data from CDEFINES to psb_config.h 2025-03-09 18:37:12 +01:00
sfilippone 01220d4639 changes to define psb_config.h 2025-03-08 12:41:22 +01:00
sfilippone 3c5d629da2 Removed make veryclean, introduced make distclean 2025-02-20 17:00:04 +01:00
sfilippone ceac2faad0 Rename krylov into linsolve where needed, step 1. 2024-11-10 10:08:50 +01:00
sfilippone e3a3e39caf Modify configure --enable-openacc --with-fcopenacc=..... 2024-07-09 10:03:30 +02:00
sfilippone 6aa7987d52 Rename GPU into cuda, and merge SPGPU code. 2023-10-19 14:22:32 +02:00
sfilippone 3a9116bc42 Merge psblas-ext into psblas step 2: GPU formats and configry. 2023-09-29 13:54:58 +02:00
sfilippone 1d5faa388d Merge psblas-ext into psblas, step 1: ext storage formats. 2023-09-27 16:23:17 +02:00
Salvatore Filippone bcc85e47fd Fix Makefiles for parallel make 2022-06-21 10:02:30 -04:00
Salvatore Filippone f8866932a6 Merge branch 'master' into maint-3.7.0 2021-04-23 05:58:25 -04:00
Salvatore Filippone 2e0020ad45 Makefile fixes for parallel builds 2021-04-23 05:50:39 -04:00
Salvatore Filippone 69099436d2 Fix makefile 2021-04-13 09:57:45 +02:00
Salvatore Filippone b56abbb270 Improve structure of Makefiles 2020-04-18 17:58:41 +02:00
Salvatore Filippone 8fc4f82ff9 Use mkdir -p 2019-04-05 10:05:47 +01:00
Salvatore Filippone ec1f6bd276 Use $SHELL for mkdir.sh 2017-11-04 10:28:12 +00:00
Salvatore Filippone 626d2263e3 Fixed Makefile: README has been renamed to README.md 2017-11-01 22:54:36 +00:00
Salvatore Filippone bbba6a670e Merged changes from svn dev version. 2017-10-02 12:04:14 +01:00
Salvatore Filippone 4734f19167 psblas3-mcbind:
Makefile
 cbind/base/Makefile
 cbind/base/psb_base_cbind_mod.f90
 cbind/base/psb_base_psblas_cbind_mod.f90
 cbind/base/psb_c_base.h
 cbind/base/psb_c_cbase.c
 cbind/base/psb_c_cbase.h
 cbind/base/psb_c_sbase.c
 cbind/base/psb_c_sbase.h
 cbind/base/psb_c_zbase.c
 cbind/base/psb_c_zbase.h
 cbind/base/psb_cpenv_mod.f90
 cbind/krylov
 cbind/prec
 cbind/test
 cbind/util

Fixed C includes.
2017-04-04 15:31:46 +00:00
Salvatore Filippone 1002d815e3 psblas3-mcbind
Make.inc.in
 Makefile
 cbind
 cbind/Makefile
 cbind/base
 cbind/base/Makefile
 cbind/base/psb_base_cbind.h
 cbind/base/psb_base_cbind_mod.f90
 cbind/base/psb_base_psblas_cbind_mod.f90
 cbind/base/psb_base_string_cbind_mod.f90
 cbind/base/psb_base_tools_cbind_mod.F90
 cbind/base/psb_c_base.c
 cbind/base/psb_c_base.h
 cbind/base/psb_c_dbase.c
 cbind/base/psb_c_dbase.h
 cbind/base/psb_cpenv_mod.f90
 cbind/base/psb_d_psblas_cbind_mod.f90
 cbind/base/psb_d_serial_cbind_mod.F90
 cbind/base/psb_d_tools_cbind_mod.F90
 cbind/base/psb_objhandle_mod.f90

Branch for C bindings.
2017-02-17 10:09:30 +00:00
Salvatore Filippone 42a305a8ba psblas3:
Remove TODO.
Add sample(s) installation.
2016-09-22 12:35:36 +00:00
Salvatore Filippone cc68090f4f *** empty log message *** 2013-11-14 09:22:52 +00:00
Salvatore Filippone b56adb6ff7 *** empty log message *** 2013-11-13 22:08:34 +00:00
Salvatore Filippone 4de10d2073 *** empty log message *** 2013-11-13 22:08:04 +00:00
Salvatore Filippone 9ce20e7c34 *** empty log message *** 2013-05-13 16:03:39 +00:00
Salvatore Filippone 4ce56cf078 *** empty log message *** 2012-06-27 12:23:22 +00:00
Salvatore Filippone f650816e77 *** empty log message *** 2012-01-25 17:35:12 +00:00
Salvatore Filippone caaced3ad1 psblas3:
util/psb_d_renum_impl.F90
 util/psb_renum_mod.f90

Added identity option to renumbering
2011-12-19 17:07:15 +00:00
Salvatore Filippone 06945b8ae6 *** empty log message *** 2011-11-16 09:05:12 +00:00
Salvatore Filippone ec27d3d67c *** empty log message *** 2011-11-11 09:52:13 +00:00
Salvatore Filippone d7cb940f68 psblas3:
Makefile
 base/Makefile
 base/modules/Makefile
 base/serial/Makefile
 prec/Makefile
 util/Makefile

Fixes to allow make -j2
2011-11-11 09:18:05 +00:00
Michele Martone 0c224b963a psblas3:
renamed libopt.a to libpsb_opt.a and building it and installing by default.
2011-04-03 11:17:32 +00:00
Michele Martone edc01c32fd psblas3:
missing HAVE_LIBRSB in the configure script. fixed.
2010-11-19 10:19:14 +00:00
Salvatore Filippone c973412675 psblas3:
Changelog
 Make.inc.in
 Makefile
 README
 base/Makefile
 base/modules/Makefile
 base/modules/psb_c_base_mat_mod.f03
 base/modules/psb_c_csc_mat_mod.f03
 base/modules/psb_c_csr_mat_mod.f03
 base/modules/psb_d_base_mat_mod.f03
 base/modules/psb_d_csc_mat_mod.f03
 base/modules/psb_d_csr_mat_mod.f03
 base/modules/psb_s_base_mat_mod.f03
 base/modules/psb_s_csc_mat_mod.f03
 base/modules/psb_s_csr_mat_mod.f03
 base/modules/psb_serial_mod.f90
 base/modules/psb_z_base_mat_mod.f03
 base/modules/psb_z_csc_mat_mod.f03
 base/modules/psb_z_csr_mat_mod.f03
 base/serial/Makefile
 base/serial/f03/psb_c_base_mat_impl.f03
 base/serial/f03/psb_c_coo_impl.f03
 base/serial/f03/psb_c_csc_impl.f03
 base/serial/f03/psb_c_csr_impl.f03
 base/serial/f03/psb_c_mat_impl.F03
 base/serial/f03/psb_d_base_mat_impl.f03
 base/serial/f03/psb_d_coo_impl.f03
 base/serial/f03/psb_d_csc_impl.f03
 base/serial/f03/psb_d_csr_impl.f03
 base/serial/f03/psb_d_mat_impl.F03
 base/serial/f03/psb_s_base_mat_impl.f03
 base/serial/f03/psb_s_coo_impl.f03
 base/serial/f03/psb_s_csc_impl.f03
 base/serial/f03/psb_s_csr_impl.f03
 base/serial/f03/psb_s_mat_impl.F03
 base/serial/f03/psb_z_base_mat_impl.f03
 base/serial/f03/psb_z_coo_impl.f03
 base/serial/f03/psb_z_csc_impl.f03
 base/serial/f03/psb_z_csr_impl.f03
 base/serial/f03/psb_z_mat_impl.F03
 prec/Makefile
 test/pargen/Makefile
 test/pargen/runs/ppde.inp

Merged the psblas3-tmold branch. 
Now uses MOLD= where available, and %MOLD method otherwise. 
Works on GNU 4.6.0 (see README).
2010-09-02 13:25:13 +00:00
Salvatore Filippone 00c1468c6c Started playing around with type extensions and typebound
procedures.
Merged performance fixes from trunk.
2008-09-19 16:06:44 +00:00
Salvatore Filippone 425028ddc5 *** empty log message *** 2008-03-13 16:05:14 +00:00