/*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: 2.4 $ ***********************************************************************EHEADER*/ /****************************************************************************** * * Header info for computation * *****************************************************************************/ #ifndef hypre_COMPUTATION_HEADER #define hypre_COMPUTATION_HEADER /*-------------------------------------------------------------------------- * hypre_ComputeInfo: *--------------------------------------------------------------------------*/ typedef struct hypre_ComputeInfo_struct { hypre_CommInfo *comm_info; hypre_BoxArrayArray *indt_boxes; hypre_BoxArrayArray *dept_boxes; hypre_Index stride; } hypre_ComputeInfo; /*-------------------------------------------------------------------------- * hypre_ComputePkg: * Structure containing information for doing computations. *--------------------------------------------------------------------------*/ typedef struct hypre_ComputePkg_struct { hypre_CommPkg *comm_pkg; hypre_BoxArrayArray *indt_boxes; hypre_BoxArrayArray *dept_boxes; hypre_Index stride; hypre_StructGrid *grid; hypre_BoxArray *data_space; int num_values; } hypre_ComputePkg; /*-------------------------------------------------------------------------- * Accessor macros: hypre_ComputeInfo *--------------------------------------------------------------------------*/ #define hypre_ComputeInfoCommInfo(info) (info -> comm_info) #define hypre_ComputeInfoIndtBoxes(info) (info -> indt_boxes) #define hypre_ComputeInfoDeptBoxes(info) (info -> dept_boxes) #define hypre_ComputeInfoStride(info) (info -> stride) /*-------------------------------------------------------------------------- * Accessor macros: hypre_ComputePkg *--------------------------------------------------------------------------*/ #define hypre_ComputePkgCommPkg(compute_pkg) (compute_pkg -> comm_pkg) #define hypre_ComputePkgIndtBoxes(compute_pkg) (compute_pkg -> indt_boxes) #define hypre_ComputePkgDeptBoxes(compute_pkg) (compute_pkg -> dept_boxes) #define hypre_ComputePkgStride(compute_pkg) (compute_pkg -> stride) #define hypre_ComputePkgGrid(compute_pkg) (compute_pkg -> grid) #define hypre_ComputePkgDataSpace(compute_pkg) (compute_pkg -> data_space) #define hypre_ComputePkgNumValues(compute_pkg) (compute_pkg -> num_values) #endif