FEI Version of the Day
fei_defs.h
00001 /*
00002 // @HEADER
00003 // ************************************************************************
00004 //             FEI: Finite Element Interface to Linear Solvers
00005 //                  Copyright (2005) Sandia Corporation.
00006 //
00007 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the
00008 // U.S. Government retains certain rights in this software.
00009 //
00010 // Redistribution and use in source and binary forms, with or without
00011 // modification, are permitted provided that the following conditions are
00012 // met:
00013 //
00014 // 1. Redistributions of source code must retain the above copyright
00015 // notice, this list of conditions and the following disclaimer.
00016 //
00017 // 2. Redistributions in binary form must reproduce the above copyright
00018 // notice, this list of conditions and the following disclaimer in the
00019 // documentation and/or other materials provided with the distribution.
00020 //
00021 // 3. Neither the name of the Corporation nor the names of the
00022 // contributors may be used to endorse or promote products derived from
00023 // this software without specific prior written permission.
00024 //
00025 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
00026 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00027 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00028 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
00029 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00030 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00031 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00032 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00033 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00034 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00035 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00036 //
00037 // Questions? Contact Alan Williams (william@sandia.gov) 
00038 //
00039 // ************************************************************************
00040 // @HEADER
00041 */
00042 
00043 #ifndef _fei_defs_h_
00044 #define _fei_defs_h_
00045 
00046 /*
00047    In this file we set some #defines to use as parameters to
00048    some fei functions, and also some error-code returns.
00049    We also provide the typedef for 'GlobalID' which appears in
00050    many FEI function prototypes. Note that the default case is
00051    for GlobalID to simply be an int.
00052    This file is included by both C and C++ versions of the fei.
00053 */
00054 
00055 #ifdef EIGHT_BYTE_GLOBAL_ID
00056     typedef long long   GlobalID;
00057     #define GlobalID_MAX LLONG_MAX
00058     #define GlobalID_MIN LLONG_MIN
00059 #else
00060     typedef int GlobalID;
00061 #endif
00062 
00063 
00064 /* solveType (used in 'setSolveType'): */
00065 #define FEI_SINGLE_SYSTEM     0
00066 #define FEI_EIGEN_SOLVE       1
00067 #define FEI_AGGREGATE_SUM     2
00068 #define FEI_AGGREGATE_PRODUCT 3
00069 
00070 /* IDType (used in coefficient-access functions) */
00071 #define FEI_NODE 0
00072 #define FEI_ELEMENT 1
00073 #define FEI_ONLY_NODES 2
00074 #define FEI_ONLY_ELEMENTS 3
00075 
00076 /* elemFormat (used in 'sumInElem' and 'sumInElemMatrix'): */
00077 #define FEI_DENSE_ROW      0
00078 #define FEI_UPPER_SYMM_ROW 1
00079 #define FEI_LOWER_SYMM_ROW 2
00080 #define FEI_DENSE_COL      3
00081 #define FEI_UPPER_SYMM_COL 4
00082 #define FEI_LOWER_SYMM_COL 5
00083 #define FEI_DIAGONAL       6
00084 #define FEI_BLOCK_DIAGONAL_ROW 7
00085 #define FEI_BLOCK_DIAGONAL_COL 8
00086 
00087 
00088 /* interleaveStrategy (used in initElemBlock): */
00089 #define FEI_NODE_MAJOR  0
00090 #define FEI_FIELD_MAJOR 1
00091 
00092 
00093 /* timingMode (used in cumulative_MPI_Wtimes): */
00094 #define FEI_LOCAL_TIMES 0
00095 #define FEI_MAX_TIMES   1
00096 #define FEI_MIN_TIMES   2
00097 
00098 /* FEI function return values */
00099 #define FEI_SUCCESS         0
00100 #define FEI_FATAL_ERROR    -1
00101 #define FEI_ID_NOT_FOUND   -2
00102 
00103 #endif
00104 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends