44#ifndef _fei_Trilinos_Helpers_hpp_
45#define _fei_Trilinos_Helpers_hpp_
47#include "fei_trilinos_macros.hpp"
50#include <fei_Include_Trilinos.hpp>
53#include <fei_SharedPtr.hpp>
55#include <fei_LinearProblemManager.hpp>
56#include <fei_VectorSpace.hpp>
57#include <fei_Reducer.hpp>
58#include <fei_MatrixGraph.hpp>
60namespace Trilinos_Helpers {
70 const std::vector<int>& local_eqns);
83 bool orderRowsWithLocalColsFirst=
false);
87 bool blockEntryMatrix,
89 bool orderRowsWithLocalColsFirst=
false);
93 bool blockEntryMatrix,
103 Teuchos::ParameterList& paramlist);
108 void copy_parameterlist(
const Teuchos::ParameterList& paramlist,
111#ifdef HAVE_FEI_EPETRA
116 get_Epetra_MultiVector(
fei::Vector* feivec,
bool soln_vec);
159 int global_row_index,
int global_col_index)
164 int local_row = erowmap.
LID(global_row_index);
165 int local_col = ecolmap.
LID(global_col_index);
172 int* row_ptr = &colIndices[rowOffsets[local_row]];
173 int* end_row = &colIndices[rowOffsets[local_row+1]];
176 for(; row_ptr != end_row; ++row_ptr) {
177 if (*row_ptr == local_col)
break;
181 return rowOffsets[local_row] + col_offset;
190 int local_row_index,
int local_col_index)
199 int* row_ptr = &colIndices[rowOffsets[local_row_index]];
200 int* end_row = &colIndices[rowOffsets[local_row_index+1]];
203 for(; row_ptr != end_row; ++row_ptr) {
204 if (*row_ptr == local_col_index)
break;
208 return rowOffsets[local_row_index] + col_offset;
const Epetra_Map & RowMap() const
int ExtractCrsDataPointers(int *&IndexOffset, int *&Indices, double *&Values_in) const
const Epetra_Map & ColMap() const