hypre/CI_struct_mv/struct_vector.h

70 lines
2.4 KiB
C

/*BHEADER**********************************************************************
* (c) 1997 The Regents of the University of California
*
* See the file COPYRIGHT_and_DISCLAIMER for a complete copyright
* notice, contact person, and disclaimer.
*
* $Revision$
*********************************************************************EHEADER*/
/******************************************************************************
*
* Header info for the hypre_StructVector structures
*
*****************************************************************************/
#ifndef hypre_STENCIL_INTERFACE_VECTOR_HEADER
#define hypre_STENCIL_INTERFACE_VECTOR_HEADER
/*--------------------------------------------------------------------------
* hypre_StructInterfaceVector:
*--------------------------------------------------------------------------*/
typedef struct
{
MPI_Comm context;
hypre_StructGrid *grid;
hypre_StructStencil *stencil;
int retrieval_on;
int storage_type;
void *translator;
void *data;
void *auxiliary_data;
} hypre_StructInterfaceVector;
/*--------------------------------------------------------------------------
* Accessor macros: hypre_StructInterfaceVector
*--------------------------------------------------------------------------*/
#define hypre_StructInterfaceVectorContext(vector) ((vector) -> context)
#define hypre_StructInterfaceVectorStructGrid(vector) ((vector) -> grid)
#define hypre_StructInterfaceVectorStructStencil(vector) ((vector) -> stencil)
#define hypre_StructInterfaceVectorRetrievalOn(vector) ((vector) -> retrieval_on)
#define hypre_StructInterfaceVectorStorageType(vector) ((vector) -> storage_type)
#define hypre_StructInterfaceVectorTranslator(vector) ((vector) -> translator)
#define hypre_StructInterfaceVectorData(vector) ((vector) -> data)
#define hypre_StructInterfaceVectorAuxData(vector) ((vector) -> auxiliary_data)
/*--------------------------------------------------------------------------
* Auxiliary Data Structure definitions
*--------------------------------------------------------------------------*/
/* PETSc Matrix */
typedef struct
{
double *VecArray;
} hypre_StructInterfaceVectorPETScAD;
#define hypre_StructInterfaceVectorVecArray(vector) \
(( (hypre_StructInterfaceVectorPETScAD *) hypre_StructInterfaceVectorAuxData(vector)) -> \
VecArray)
#endif