PlasCom2  1.0
XPACC Multi-physics simluation application
Advancer.H
Go to the documentation of this file.
1 //#include "Simulation.H"
2 #ifndef __ADVANCER_H__
3 #define __ADVANCER_H__
4 
5 #include "PCPPTypes.H"
6 #include "StateOperators.H"
7 
8 using namespace fixtures;
9 
10 namespace simulation {
11 namespace advancer {
12 
13 
14  template<typename DomainType>
15  class base {
16 
17  public:
18 
19  typedef typename DomainType::GridType GridType;
20  typedef typename DomainType::StateType StateType;
21 
22  bool errCheck;
23 
24  base() : errCheck(true), messageStreamPtr(NULL), domainPtr(NULL)
25  {};
26 
27  base(DomainType &inDomain) : errCheck(true), messageStreamPtr(NULL),
28  domainPtr(NULL)
29  {
30  InitilializeAdvancer(inDomain);
31  };
32 
33  virtual int Configure(fixtures::ConfigurationType &inConfig) { return(0); };
34 
35  virtual int InitializeAdvance() { return(0); };
36 
37  virtual int InitializeAdvancer(DomainType &inDomain,std::ostream &messageStream) {
38  domainPtr = &inDomain;
39  // numGrids = inDomain.NumberOfGrids();
40  return(0);
41  };
42 
43  virtual int AdvanceDomain() { return(0); };
44 
45  // virtual int RHS(StateType &inState,StateType &outState) { return(0); };
46 
47  virtual int FinalizeAdvance() { return(0); };
48 
49  virtual int InterGridExchange() { return(0); };
50 
51  virtual void SetError(const std::string &errorMessage,fixtures::CommunicatorType &inComm){
52  inComm.SetErr(1);
53  if(messageStreamPtr)
54  *messageStreamPtr << "Advancer:Error: " << errorMessage << std::endl;
55  };
56 
58  {
59  if(errCheck)
60  return(0);
61  return(inComm.Check());
62  };
63 
64  virtual void SetMessageStream(std::ostream &messageStream)
65  { messageStreamPtr = &messageStream; };
66 
67  protected:
68 
70  DomainType *domainPtr;
71  std::ostream *messageStreamPtr;
72 
73  };
74 
75 };
76 };
77 #endif
virtual int AdvanceDomain()
Definition: Advancer.H:43
virtual void SetMessageStream(std::ostream &messageStream)
Definition: Advancer.H:64
virtual int InitializeAdvance()
Definition: Advancer.H:35
virtual int FinalizeAdvance()
Definition: Advancer.H:47
virtual int InitializeAdvancer(DomainType &inDomain, std::ostream &messageStream)
Definition: Advancer.H:37
int SetErr(int errin)
Definition: COMM.H:110
std::ostream * messageStreamPtr
Definition: Advancer.H:71
virtual void SetError(const std::string &errorMessage, fixtures::CommunicatorType &inComm)
Definition: Advancer.H:51
base(DomainType &inDomain)
Definition: Advancer.H:27
DomainType * domainPtr
Definition: Advancer.H:70
virtual int InterGridExchange()
Definition: Advancer.H:49
int Check(comm::Ops op=comm::MAXOP)
Definition: COMM.C:355
Main encapsulation of MPI.
Definition: COMM.H:62
DomainType::StateType StateType
Definition: Advancer.H:20
fixtures::ConfigurationType advancerConfig
Definition: Advancer.H:65
virtual int ErrorCheck(fixtures::CommunicatorType &inComm)
Definition: Advancer.H:57
virtual int Configure(fixtures::ConfigurationType &inConfig)
Definition: Advancer.H:33
DomainType::GridType GridType
Definition: Advancer.H:19