48  const std::string                               &fileName
 
   50  ,Teuchos::RCP<Epetra_CrsMatrix>         *A
 
   51  ,Teuchos::RCP<Epetra_Map>               *map
 
   52  ,Teuchos::RCP<Epetra_Vector>            *x
 
   53  ,Teuchos::RCP<Epetra_Vector>            *b
 
   54  ,Teuchos::RCP<Epetra_Vector>            *xExact
 
   64  const std::string::size_type ext_dot = fileName.rfind(
".");
 
   65  TEUCHOS_TEST_FOR_EXCEPT( ext_dot == std::string::npos );
 
   66  std::string ext = fileName.substr(ext_dot+1);
 
   69  char *hacked_file_str = 
const_cast<char*
>(fileName.c_str());
 
   71  if ( ext == 
"triU" ) {
 
   72    const bool NonContiguousMap = 
true;
 
   73    TEUCHOS_TEST_FOR_EXCEPT(
 
   74      0!=Trilinos_Util_ReadTriples2Epetra(
 
   75        hacked_file_str, 
false, comm, readMap, readA, readx,
 
   76        readb, readxexact, NonContiguousMap
 
   80  else if ( ext == 
"triS" ) {
 
   81    const bool NonContiguousMap = 
true;
 
   82    TEUCHOS_TEST_FOR_EXCEPT(
 
   83      0!=Trilinos_Util_ReadTriples2Epetra(
 
   84        hacked_file_str, 
true, comm, readMap, readA, readx,
 
   85        readb, readxexact, NonContiguousMap
 
   89  else if( ext == 
"mtx" ) {
 
   90    TEUCHOS_TEST_FOR_EXCEPT(
 
   91      0!=Trilinos_Util_ReadMatrixMarket2Epetra(
 
   92        hacked_file_str, comm, readMap,
 
   93        readA, readx, readb, readxexact
 
   97  else if ( ext == 
"hb" ) {
 
   98    Trilinos_Util_ReadHb2Epetra(
 
   99      hacked_file_str, comm, readMap, readA, readx,
 
  104    TEUCHOS_TEST_FOR_EXCEPTION(
 
  105      true, std::logic_error
 
  106      ,
"Error, the file = \'"<<hacked_file_str<<
"\' has the extension " 
  107      "\'*."<<ext<<
"\' is not \'*.triU\', \'*.triS\', \'*.mtx\', or \'*.hb\'!" 
  111  Teuchos::RCP<Epetra_CrsMatrix>    loc_A         = Teuchos::rcp(readA);
 
  112  Teuchos::RCP<Epetra_Map>          loc_map       = Teuchos::rcp(readMap);
 
  113  Teuchos::RCP<Epetra_Vector>       loc_x         = Teuchos::rcp(readx);
 
  114  Teuchos::RCP<Epetra_Vector>       loc_b         = Teuchos::rcp(readb);
 
  115  Teuchos::RCP<Epetra_Vector>       loc_xExact    = Teuchos::rcp(readxexact);
 
  118  if(map)     *map     = loc_map;
 
  121  if(xExact)  *xExact  = loc_xExact;
 
 
  128  const std::string                               &fileName
 
  130  ,Teuchos::RCP<Epetra_CrsMatrix>         *A
 
  131  ,Teuchos::RCP<Epetra_Map>               *map
 
  132  ,Teuchos::RCP<Epetra_Vector>            *x
 
  133  ,Teuchos::RCP<Epetra_Vector>            *b
 
  134  ,Teuchos::RCP<Epetra_Vector>            *xExact
 
  144  const std::string::size_type ext_dot = fileName.rfind(
".");
 
  145  TEUCHOS_TEST_FOR_EXCEPT( ext_dot == std::string::npos );
 
  146  std::string ext = fileName.substr(ext_dot+1);
 
  149  char *hacked_file_str = 
const_cast<char*
>(fileName.c_str());
 
  151  if ( ext == 
"triU" ) {
 
  152    const bool NonContiguousMap = 
true;
 
  153    TEUCHOS_TEST_FOR_EXCEPT(
 
  154      0!=Trilinos_Util_ReadTriples2Epetra64(
 
  155        hacked_file_str, 
false, comm, readMap, readA, readx,
 
  156        readb, readxexact, NonContiguousMap
 
  160  else if ( ext == 
"triS" ) {
 
  161    const bool NonContiguousMap = 
true;
 
  162    TEUCHOS_TEST_FOR_EXCEPT(
 
  163      0!=Trilinos_Util_ReadTriples2Epetra64(
 
  164        hacked_file_str, 
true, comm, readMap, readA, readx,
 
  165        readb, readxexact, NonContiguousMap
 
  169  else if( ext == 
"mtx" ) {
 
  170    TEUCHOS_TEST_FOR_EXCEPT(
 
  171      0!=Trilinos_Util_ReadMatrixMarket2Epetra64(
 
  172        hacked_file_str, comm, readMap,
 
  173        readA, readx, readb, readxexact
 
  177  else if ( ext == 
"hb" ) {
 
  178    Trilinos_Util_ReadHb2Epetra64(
 
  179      hacked_file_str, comm, readMap, readA, readx,
 
  184    TEUCHOS_TEST_FOR_EXCEPTION(
 
  185      true, std::logic_error
 
  186      ,
"Error, the file = \'"<<hacked_file_str<<
"\' has the extension " 
  187      "\'*."<<ext<<
"\' is not \'*.triU\', \'*.triS\', \'*.mtx\', or \'*.hb\'!" 
  191  Teuchos::RCP<Epetra_CrsMatrix>    loc_A         = Teuchos::rcp(readA);
 
  192  Teuchos::RCP<Epetra_Map>          loc_map       = Teuchos::rcp(readMap);
 
  193  Teuchos::RCP<Epetra_Vector>       loc_x         = Teuchos::rcp(readx);
 
  194  Teuchos::RCP<Epetra_Vector>       loc_b         = Teuchos::rcp(readb);
 
  195  Teuchos::RCP<Epetra_Vector>       loc_xExact    = Teuchos::rcp(readxexact);
 
  198  if(map)     *map     = loc_map;
 
  201  if(xExact)  *xExact  = loc_xExact;
 
 
void readEpetraLinearSystem64(const std::string &fileName, const Epetra_Comm &comm, Teuchos::RCP< Epetra_CrsMatrix > *A=NULL, Teuchos::RCP< Epetra_Map > *map=NULL, Teuchos::RCP< Epetra_Vector > *x=NULL, Teuchos::RCP< Epetra_Vector > *b=NULL, Teuchos::RCP< Epetra_Vector > *xExact=NULL)
 
void readEpetraLinearSystem(const std::string &fileName, const Epetra_Comm &comm, Teuchos::RCP< Epetra_CrsMatrix > *A=NULL, Teuchos::RCP< Epetra_Map > *map=NULL, Teuchos::RCP< Epetra_Vector > *x=NULL, Teuchos::RCP< Epetra_Vector > *b=NULL, Teuchos::RCP< Epetra_Vector > *xExact=NULL)
Read in an Epetra linear system from a file.