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 "Teuchos_RCP.hpp"
14 #include "BelosLinearProblem.hpp"
15 #include "Teuchos_StandardCatchMacros.hpp"
16 #include "Teuchos_ParameterList.hpp"
17 #include "Teuchos_XMLParameterListCoreHelpers.hpp"
18 #include "ceeSBVP.hpp"
19 
20 int main(int argc, char *argv[]){
21 
22  std::string xmlInFileName = "";
23 
24  Teuchos::CommandLineProcessor clp(false);
25  clp.setOption("xml-in-file",&xmlInFileName,"The XML file to read into a parameter list");
26  clp.setDocString("TO DO.");
27 
28  Teuchos::CommandLineProcessor::EParseCommandLineReturn
29  parse_return = clp.parse(argc,argv);
30  if( parse_return != Teuchos::CommandLineProcessor::PARSE_SUCCESSFUL ) {
31  std::cout << "\nEnd Result: TEST FAILED" << std::endl;
32  return parse_return;
33  }
34 
35 #ifdef HAVE_MPI
36 MPI_Init(&argc, &argv);
37  Epetra_MpiComm Comm(MPI_COMM_WORLD);
38 #else
39  Epetra_SerialComm Comm;
40 #endif
41 
42  Teuchos::RCP<Teuchos::ParameterList> paramList = Teuchos::rcp(new Teuchos::ParameterList);
43  if(xmlInFileName.length()) {
44  Teuchos::updateParametersFromXmlFile(xmlInFileName, inoutArg(*paramList));
45  }
46  if (Comm.MyPID()==0){
47  paramList->print(std::cout,2,true,true);
48  }
49 
50  Teuchos::RCP<ceeSBVP> interface = Teuchos::rcp(new ceeSBVP(Comm,*paramList));
51  std::string path = Teuchos::getParameter<std::string>(paramList->sublist("Mesh"), "path");
52 
53  int * seed = new int [5];
54  double displacement = 0.5;
55 
56  for (unsigned int j=0; j<1000; ++j){
57  seed[0] = 5*j; seed[1] = 5*j+1; seed[2] = 5*j+2; seed[3] = 5*j+3; seed[4] = 5*j+4;
58  interface->solveOneRealization(displacement,seed);
59  std::string pathu = path + std::to_string(j) + "_u.mtx";
60  std::string pathf = path + std::to_string(j);
61  interface->print_solution(pathu);
62  interface->recover_cauchy_stress(pathf,seed);
63  interface->compute_deformation(*interface->solution,pathf,false,true);
64  }
65 
66 #ifdef HAVE_MPI
67  MPI_Finalize();
68 #endif
69 return 0;
70 
71 }
for j
Definition: costFunction.m:42
int main(int argc, char *argv[])
Definition: main.cpp:23