PlasCom2  1.0
XPACC Multi-physics simluation application
PC2WriteDomains.C
Go to the documentation of this file.
1 #ifndef __PLASCOM2_WRITE_DOMAINS_H__
2 #define __PLASCOM2_WRITE_DOMAINS_H__
3 #include "PlasCom2.H"
4 #include "PC2IO.H"
5 
6 namespace plascom2 {
7 
8  std::string IORootName(){
9  return(std::string("PlasCom2"));
10  };
11 
13  {
14  std::ostringstream messageStream;
15  std::string fileNameRoot;
16  if(appConfig.IsSet("PlasCom2:OutputName"))
17  fileNameRoot = appConfig.GetValue("PlasCom2:OutputName");
18  if(fileNameRoot.empty()){
19  fileNameRoot = std::string("PlasCom2");
20  }
21  std::string outputFileSuffix(std::string("_")+
23  std::string outputFileNameRoot(fileNameRoot+outputFileSuffix);
24 
25  //std::string("_")+pcpp::io::StepStamp(iStep));
26 
27  int numDomains = appDomains.size();
28 
29  for(int iDomain = 0;iDomain < numDomains;iDomain++){
30  std::string &domainName(domainInfo.domainNames[iDomain]);
31  DomainBaseType &outDomain(appDomains[iDomain]);
32 
33  std::ostringstream wsdMessageStream;
34  // std::string outputFileName2(outDomain.Name()+outputFileSuffix+".h5");
35  std::string outputFileName2(outputFileNameRoot+".h5");
36  plascom2::io::hdf5::WriteSingleDomain(outputFileName2,outDomain,appConfig,wsdMessageStream);
37  }
38  return(0);
39  // double domainTime = outDomain.Time();
40 // DomainBaseType::gridvector &domainGrids(outDomain.Grids());
41 // DomainBaseType::statevector &gridStates(outDomain.States());
42 // DomainBaseType::statevector &gridParams(outDomain.Params());
43 
44 // const std::vector<std::string> &geometryNames(outDomain.GeometryNames());
45 // const std::vector<std::string> &gridNames(outDomain.GridNames());
46 
47 // int numLocalGrids = outDomain.NumberOfLocalGrids();
48 // for(int iLocalGrid = 0;iLocalGrid < numLocalGrids;iLocalGrid++){
49 // int iGrid = outDomain.LocalGridID(iLocalGrid);
50 
51 // GridType &outGrid(*domainGrids[iGrid]);
52 // StateType &outState(*gridStates[iGrid]);
53 // StateType &outParam(*gridParams[iGrid]);
54 
55 // const std::string &geometryName(geometryNames[iGrid]);
56 // std::string gridName(gridNames[iGrid]);
57 // std::string::size_type x = gridName.find_last_of(":");
58 // if(x != std::string::npos){
59 // gridName = gridName.substr(x+1);
60 // }
61 // #ifdef ENABLE_HDF5
62 // std::string outputFileName(outputFileNameRoot+".h5");
63 
64 // if(plascom2::io::hdf5::OutputSingle(outputFileName,domainName,geometryName,gridName,
65 // outGrid,outState,outParam,appConfig,messageStream,iStep)){
66 // ErrOut("plascom2::io::hdf5::OutputSingle failed.\n");
67 // return(1);
68 // }
69 // #else
70 // ErrOut("WARNING!> HDF5 not enabled. Cannot perform IO.\n");
71 // return(1);
72 // #endif
73 // }
74 // }
75 // return(0);
76  };
77 }
78 
79 #endif
std::string StepStamp(size_t inStep)
Definition: PCPPIO.C:30
domainvector appDomains
Definition: Simulation.H:47
Definition: PC2IO.H:10
DomainBaseT DomainBaseType
Definition: Simulation.H:29
std::string GetValue(const std::string &key) const
Definition: Parameters.C:24
virtual int WriteDomains()
std::string IORootName()
DomainInfoType domainInfo
Definition: Simulation.H:45
fixtures::ConfigurationType appConfig
Definition: Simulation.H:42
std::vector< std::string > domainNames
Definition: Domain.H:26
bool IsSet(const std::string &Key) const
Definition: Parameters.C:115