/*BHEADER********************************************************************** * Copyright (c) 2008, Lawrence Livermore National Security, LLC. * Produced at the Lawrence Livermore National Laboratory. * This file is part of HYPRE. See file COPYRIGHT for details. * * HYPRE is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License (as published by the Free * Software Foundation) version 2.1 dated February 1999. * * $Revision$ ***********************************************************************EHEADER*/ /****************************************************************************** * * Header info for Multiblock Matrix data structures * *****************************************************************************/ #ifndef hypre_MULTIBLOCK_MATRIX_HEADER #define hypre_MULTIBLOCK_MATRIX_HEADER /*-------------------------------------------------------------------------- * Multiblock Matrix *--------------------------------------------------------------------------*/ typedef struct { int num_submatrices; int *submatrix_types; void **submatrices; } hypre_MultiblockMatrix; /*-------------------------------------------------------------------------- * Accessor functions for the Multiblock Matrix structure *--------------------------------------------------------------------------*/ #define hypre_MultiblockMatrixSubmatrices(matrix) ((matrix) -> submatrices) #define hypre_MultiblockMatrixNumSubmatrices(matrix) ((matrix) -> num_submatrices) #define hypre_MultiblockMatrixSubmatrixTypes(matrix) ((matrix) -> submatrix_types) #define hypre_MultiblockMatrixSubmatrix(matrix,j) (hypre_MultiblockMatrixSubmatrices\ (matrix)[j]) #define hypre_MultiblockMatrixSubmatrixType(matrix,j) (hypre_MultiblockMatrixSubmatrixTypes\ (matrix)[j]) #endif