ENH: update globalIndex::mpiGather to use MPI intrinsic/user types

- add provisional support for selecting MPI_Gatherv
  when merging fields in the surface writers.
  Uses the 'gatherv' keyword [experimental]

BUG: gatherv/scatterv wrappers used the incorrect data type

- incorrectly checked against UPstream_basic_dataType trait instead of
  UPstream_dataType, which resulted in a count mismatch for
  user-defined types (eg, vector, tensor,...).

  This was not visibly active bug, since previous internal uses of
  gatherv were restricted to primitive types.

COMP: make UPstream dataType traits size(...) constexpr

- allows static asserts and/or compile-time selection
  of code based on size(1)
This commit is contained in:
Mark Olesen
2025-10-09 12:03:33 +02:00
committed by Andrew Heather
parent de91806a24
commit 22fd0b3e72
14 changed files with 351 additions and 202 deletions

View File

@ -0,0 +1,11 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
#------------------------------------------------------------------------------
cleanCase0
# Remove surface and features
rm -rf constant/triSurface
#------------------------------------------------------------------------------

View File

@ -49,7 +49,8 @@ __surfaceFieldValue
{
default
{
verbose true;
verbose true;
//gatherv true;
}
}

View File

@ -19,6 +19,12 @@ debug
formatOptions
{
default
{
verbose true;
//gatherv true;
}
ensight
{
collateTimes true;