dimension data (see [issue[926]). Also added initial implementations of the new
loops and named them with the prefix 'zypre_'. These new loops will be
optimized further before swapping them in permanently.
Changed MPI routines to hypre_MPI routines.
Added hypre_printf, etc. routines.
Added AUTOTEST tests to look for 'int' and 'MPI_' calls.
Added a new approach for the Fortran interface (not implemented everywhere yet).
- Generalized the Struct communication routines to handle data transformations
- Added more flexibility to Set(Box)Values routines for efficiency.
- Inter-part shared boundary data is now updated appropriately
- Added SetNeighborPart function (to replace SetNeighborBox)
- Added a finite-element-style input file capability for the sstruct driver
- The Split solver can now be used standalone (added to struct/sstruct drivers)
- Added a Jacobi block solver to Split (useful for regression testing)
- Added regression tests for the new SetNeighborPart features
Data Structure/Function: sstruct_vector
Changes: added double *data, int *dataindices, and vector_type to the structure
Reason: data will point to a "huge" chunk with all the data of the grid vector including ghost layers of
the sgrid vectors.
dataindices an array of size nparts will keep track of where in the datachunk a part lies
File: sstruct_mv.h sstruct_vector.h
Module: sstruct_mv
Data Structure/Function: sstruct_pvector
Changes: added a int *dataindices
Reason: to keep track of where in the part chunk of data a svector data lies.
File: sstruct_mv.h sstruct_vector.h
Module: sstruct_mv
Data Structure/Function: HYPRE_SStructVectorCreate
Changes: Move the ijvector to initialize phase
Set the default of the data and dataindices to null
Reason:
File: HYPRE_sstruct_vector.c
Module: sstruct_mv
Data Structure/Function: HYPRE_SStructVectorDestroy
Changes: To destroy the ijpiece correctly, added and IF
Reason: to avoid the dangling pointer in the ijvector destruction
File: HYPRE_sstruct_vector.c
Module: sstruct_mv
Data Structure/Function:HYPRE_SStructVectorInitialize
Changes: Calculation of dataindices, datasize
Allocation of huge chunk of data
Pointing to the right places of the datachunk for pvectors and svectors
Creation of the IJVector with the right dimension
In case of being a HYPRE_SSTRUCT vector, deallocation of the parcsr vector piece (not needed).
Reason: All the data of the vector is now a contiguous chunk, so one has to make sure
that the svectors point to the right places within the chunk.
File:HYPRE_sstruct_vector.c
Module: sstruct_mv
Data Structure/Function: hypre_SStructVectorInitializeShell hypre_SStructPVectorInitializeShell
Changes: new functions to compute datasizes and dataindices
Reason: used by the initialization phase to compute sizes and place pointer in the datachunk
File:sstruct_vector.c
Module: sstruct_mv
Data Structure/Function: ypre_SStructVectorconvert hypre_SStructVectorrestore
Changes: functions modified to avoid copying now that it is not necessary. The original functions
were renamed in case they are needed for other applications..
Reason: not need copying since the data for parcsrvector have the same dimension
as the pure sstruct vector.
File:sstruct_vector.c