Trilinos based (stochastic) FEM solvers
main.cpp
Go to the documentation of this file.
1 /*
2 Brian Staber (brian.staber@gmail.com)
3 */
4 
5 #include "Epetra_ConfigDefs.h"
6 #ifdef HAVE_MPI
7 #include "mpi.h"
8 #include "Epetra_MpiComm.h"
9 #else
10 #include "Epetra_SerialComm.h"
11 #endif
12 
13 #include "readnrldata.hpp"
14 #include "distributenrldata.hpp"
15 
16 int main(int argc, char *argv[]){
17 
18 #ifdef HAVE_MPI
19  MPI_Init(&argc, &argv);
20  Epetra_MpiComm Comm(MPI_COMM_WORLD);
21 #else
22  Epetra_SerialComm Comm;
23 #endif
24 
25  //std::string filemesh = "/Users/brian/Documents/GitHub/Trilinos/nrl/mesh/composite_hexa_32.msh";
26  std::string filemesh = "/home/s/staber/Trilinos/nrl/mesh/composite_hexa_32.msh";
27  mesh Mesh(Comm,filemesh, 1.0);
28  std::string pathnrl = "/home/s/staber/Trilinos_results/nrl/data/";
29  Teuchos::RCP<distributenrldata> nrldata = Teuchos::rcp(new distributenrldata(Mesh,pathnrl));
30 
31  if (Comm.MyPID()==0){
32  std::cout << "MyPID" << std::setw(10) << "ncells" << std::setw(10) << "npoints" << "\n";
33  }
34  Comm.Barrier();
35  std::cout << Comm.MyPID() << std::setw(10) << nrldata->local_cells.size() << std::setw(10) << nrldata->local_xi.size() << "\n";
36  Comm.Barrier();
37  /*if (Comm.MyPID()==1){
38  for (unsigned int i=0; i<nrldata->local_cells.size(); ++i){
39  std::cout << nrldata->local_xi[i] << std::setw(10) << nrldata->local_eta[i] << "\n";
40  }
41  }
42  Comm.Barrier();
43  */
44  if (Comm.MyPID()==0){
45  std::cout << nrldata->boundaryconditions << "\n";
46  std::cout << nrldata->energy << "\n";
47  }
48 
49  //Teuchos::RCP<readnrldata> nrldata = Teuchos::rcp(new readnrldata());
50  /*if (Comm.MyPID()==0){
51  std::cout << "npoints = " << nrldata->npoints << std::setw(10) << "nloads = " << nrldata->nloads << "\n";
52 
53  for (unsigned int i=0; i<nrldata->points.M(); ++i){
54  std::cout << std::setw(10) << nrldata->points(i,0) << std::setw(10) << nrldata->points(i,1) << std::setw(10) << nrldata->points(i,2) << "\n";
55  }
56  for (unsigned int i=0; i<nrldata->nloads; ++i){
57  std::cout << std::setw(10) << nrldata->boundaryconditions(i) << "\n";
58  }
59  for (unsigned int i=0; i<nrldata->npoints; ++i){
60  std::cout << nrldata->exx(i+4*nrldata->npoints,5) << "\n";
61  }
62  }*/
63 
64 #ifdef HAVE_MPI
65  MPI_Finalize();
66 #endif
67 return 0;
68 }
Definition: meshpp.hpp:49
int main(int argc, char *argv[])
Definition: main.cpp:23