/usr/include/trilinos/fei_MatrixTraits_FEData.hpp is in libtrilinos-dev 10.4.0.dfsg-1ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | /*--------------------------------------------------------------------*/
/* Copyright 2005 Sandia Corporation. */
/* Under the terms of Contract DE-AC04-94AL85000, there is a */
/* non-exclusive license for use of this work by or on behalf */
/* of the U.S. Government. Export of this program may require */
/* a license from the United States Government. */
/*--------------------------------------------------------------------*/
#ifndef _fei_MatrixTraits_FEData_hpp_
#define _fei_MatrixTraits_FEData_hpp_
//This file defines matrix traits for FiniteElementData matrices
//
#include <fei_FiniteElementData.hpp>
namespace fei {
/** specialization for FiniteElementData */
template<>
struct MatrixTraits<FiniteElementData> {
/** Return a string type-name for the underlying matrix */
static const char* typeName()
{ return("FiniteElementData"); }
/** Set a specified scalar value throughout the matrix.
*/
static int setValues(FiniteElementData* fed, double scalar)
{
return( -1 );
}
/** Query the number of rows. This is expected to be the number of rows
on the local processor.
*/
static int getNumLocalRows(FiniteElementData* fed, int& numRows)
{
numRows = -1;
return(-1);
}
/** Given a global (zero-based) row number, query the length of that row.
*/
static int getRowLength(FiniteElementData* fed, int row, int& length)
{
return( -1 );
}
/** Given a global (zero-based) row number, pass out a copy of the contents
of that row.
@param fed
@param row
@param len Length of the user-allocated arrays coefs and indices.
@param coefs User-allocated array which will hold matrix coefficients
on output.
@param indices User-allocated array which will hold column-indices on
output.
@return error-code 0 if successful. Non-zero return-value may indicate
that the specified row is not locally owned.
*/
static int copyOutRow(FiniteElementData* fed,
int row, int len, double* coefs, int* indices)
{
return( -1 );
}
/** Sum a C-style table of coefficient data into the underlying matrix.
*/
static int putValuesIn(FiniteElementData* fed,
int numRows, const int* rows,
int numCols, const int* cols,
const double* const* values,
bool sum_into)
{
return( -1 );
}
/** Perform any necessary internal communications/synchronizations or other
operations appropriate at end of data input. For some implementations this
will be a no-op, so this "default implementation" will return 0.
*/
static int globalAssemble(FiniteElementData* fed)
{
return( fed->loadComplete() );
}
/** Compute the matrix-vector product y = A*x */
static int matvec(FiniteElementData* fed,
fei::Vector* x,
fei::Vector* y)
{
return(-1);
}
};//struct MatrixTraits
}//namespace fei
#endif // _fei_MatrixTraits_FEData_hpp_
|