snl_fei_BlockMatrixTraits.hpp

00001 /*--------------------------------------------------------------------*/
00002 /*    Copyright 2005 Sandia Corporation.                              */
00003 /*    Under the terms of Contract DE-AC04-94AL85000, there is a       */
00004 /*    non-exclusive license for use of this work by or on behalf      */
00005 /*    of the U.S. Government.  Export of this program may require     */
00006 /*    a license from the United States Government.                    */
00007 /*--------------------------------------------------------------------*/
00008 
00009 #ifndef _snl_fei_BlockMatrixTraits_hpp_
00010 #define _snl_fei_BlockMatrixTraits_hpp_
00011 
00012 #include <fei_macros.hpp>
00013 
00014 namespace snl_fei {
00021   template<typename T>
00022   struct BlockMatrixTraits {
00023 
00025     static const char* typeName()
00026       { static const char name[] = "unsupported"; return(name); }
00027 
00030     static int putScalar(T* /*mat*/, double /*scalar*/)
00031       { return(-1); }
00032 
00035     static int getRowLength(T* /*mat*/, int /*row*/, int& /*length*/)
00036     { return(-1); }
00037 
00041     static int getPointRowLength(T* /*mat*/, int /*row*/, int& /*length*/)
00042     { return(-1); }
00043 
00067     static int copyOutRow(T* /*mat*/,
00068                           int /*row*/,
00069                           int /*numBlkCols*/,
00070                           int /*rowDim*/,
00071                           int* /*blkCols*/,
00072                           int* /*colDims*/,
00073                           double* /*coefs*/,
00074                           int /*coefsLen*/,
00075                           int& /*blkRowLength*/)
00076       { return(-1); }
00077 
00095     static int copyOutPointRow(T* /*mat*/,
00096                                int /*firstLocalOffset*/,
00097                                int /*row*/, int /*len*/,
00098                                double* /*coefs*/, int* /*indices*/,
00099                                int& /*rowLength*/)
00100     { return(-1); }
00101 
00105     static int sumIn(T* /*mat*/,
00106                      int /*blockRow*/,
00107                      int /*rowDim*/,
00108                      int /*numBlockCols*/,
00109                      const int* /*blockCols*/,
00110                      const int* /*colDims*/,
00111                      int /*LDA*/,
00112                      const double* /*values*/)
00113     { return(-1); }
00114 
00118     static int copyIn(T* /*mat*/,
00119                      int /*blockRow*/,
00120                      int /*rowDim*/,
00121                      int /*numBlockCols*/,
00122                      const int* /*blockCols*/,
00123                      const int* /*colDims*/,
00124                      int /*LDA*/,
00125                      const double* /*values*/)
00126     { return(-1); }
00127 
00130     static int sumIn(T* /*mat*/,
00131                      int /*row*/, int /*rowDim*/,
00132                      int /*numCols*/, const int* /*cols*/,
00133                      const int* /*LDAs*/,
00134                      const int* /*colDims*/,
00135                      const double* const* /*values*/)
00136     { return(-1); }
00137 
00141     static int copyIn(T* /*mat*/,
00142                       int /*row*/, int /*rowDim*/,
00143                       int /*numCols*/, const int* /*cols*/,
00144                       const int* /*LDAs*/,
00145                       const int* /*colDims*/,
00146                       const double* const* /*values*/)
00147       { return(-1); }
00148 
00152     static int globalAssemble(T* /*mat*/)
00153     { return(-1); }
00154 
00155   };//struct BlockMatrixTraits
00156 }//namespace snl_fei
00157 
00158 #endif // _snl_fei_BlockMatrixTraits_hpp_

Generated on Tue Jul 13 09:27:46 2010 for FEI by  doxygen 1.4.7