PlasCom2  1.0
XPACC Multi-physics simluation application
RHS.H
Go to the documentation of this file.
1 #ifndef __RHS_H__
2 #define __RHS_H__
3 
4 #include "PCPPTypes.H"
5 #include "StateOperators.H"
6 #include "Boundary.H"
7 
8 using namespace fixtures;
9 namespace simulation {
10  namespace rhs {
11 
12  template<typename DomainType>
13  class base {
14 
15  public:
16 
17  typedef typename DomainType::GridType GridType;
18  typedef typename DomainType::StateType StateType;
21 
22  public:
23 
24  virtual int ProcessInterior(GridType &inGrid,StateType &inState,StateType &outState)
25  { return(0); };
26  virtual int ProcessHalos(GridType &inGrid,StateType &inState,StateType &outState,std::vector<StateType *> &haloStates)
27  { return(0); };
28  virtual int ProcessBoundaries(GridType &inGrid,StateType &inState,StateType &outState,std::vector<BoundaryType *> domainBoundaries,
29  std::vector<StateType *> &boundaryStates)
30  { return(0); };
31 
32  protected:
33  std::vector<std::string> fieldNames;
34  std::vector<int> fieldIDs;
35  };
36 
37  template<typename GridT,typename StateT,typename OperatorT>
38  class domain_base {
39 
40  public:
41  typedef GridT GridType;
42  typedef StateT StateType;
43  typedef OperatorT OperatorType;
44 
49 
50  public:
51 
52  virtual int Initialize(GridType &inGrid, StateType &inState, StateType &inParam,
53  OperatorType &inOperator)
54  {
55  std::cout << "WARNING: Calling rhs::domain_base Initialize" << std::endl;
56  return(0);
57  };
58  virtual int Initialize(GridType &inGrid, StateType &inState, StateType &inParam,
59  StateType &targetState, OperatorType &inOperator)
60  {
61  std::cout << "WARNING: Calling rhs::domain_base Initialize" << std::endl;
62  return(0);
63  };
64  virtual int SetupRHS(GridType &inGrid, StateType &inState, StateType &rhsState,int threadId)
65  {
66  std::cout << "WARNING: Calling rhs::domain_base SetupRHS" << std::endl;
67  return(0);
68  };
69  virtual int RHS(int threadId)
70  {
71  std::cout << "WARNING: Calling rhs::domain_base RHS" << std::endl;
72  return(0);
73  };
74  virtual double TimeStep(double *outCFL = NULL)
75  {
76  std::cout << "WARNING: Calling rhs::domain_base TimeStep" << std::endl;
77  return(0.0);
78  };
79  virtual void SetGlobal(GlobalType &inGlobal)
80  {
81  globalPtr = &inGlobal;
82  };
83  virtual void SetDomainBCs(std::vector<BoundaryType> &domainBoundaries,
84  std::vector<BCType> &domainBCs)
85  {
86  std::cout << "WARNING: Calling rhs::domain_base SetDomainBCs" << std::endl;
87  };
88  virtual int InitThreadIntervals()
89  {
90  std::cout << "WARNING: Calling rhs::domain_base InitThreadIntervals" << std::endl;
91  return(0);
92  };
93  virtual int ComputeDV(int threadId = 0)
94  {
95  std::cout << "WARNING: Calling rhs::domain_base ComputeDV" << std::endl;
96  return(0);
97  };
98  protected:
99  GlobalType *globalPtr;
100 
101  };
102 
103  };
104 };
105 #endif
virtual int ProcessInterior(GridType &inGrid, StateType &inState, StateType &outState)
Definition: RHS.H:24
virtual int ProcessBoundaries(GridType &inGrid, StateType &inState, StateType &outState, std::vector< BoundaryType *> domainBoundaries, std::vector< StateType *> &boundaryStates)
Definition: RHS.H:28
virtual int InitThreadIntervals()
Definition: RHS.H:88
DomainType::GridType GridType
Definition: RHS.H:17
pcpp::ParallelGlobalType GlobalType
Definition: RHS.H:48
DomainType::StateType StateType
Definition: RHS.H:18
simulation::domain::boundary::bc::base BCType
Definition: RHS.H:20
virtual double TimeStep(double *outCFL=NULL)
Definition: RHS.H:74
virtual int ProcessHalos(GridType &inGrid, StateType &inState, StateType &outState, std::vector< StateType *> &haloStates)
Definition: RHS.H:26
virtual int Initialize(GridType &inGrid, StateType &inState, StateType &inParam, OperatorType &inOperator)
Definition: RHS.H:52
virtual void SetGlobal(GlobalType &inGlobal)
Definition: RHS.H:79
std::vector< int > fieldIDs
Definition: RHS.H:34
virtual void SetDomainBCs(std::vector< BoundaryType > &domainBoundaries, std::vector< BCType > &domainBCs)
Definition: RHS.H:83
simulation::grid::halo halo_t
Definition: RHS.H:45
simulation::domain::boundary::base BoundaryType
Definition: RHS.H:46
GlobalType * globalPtr
Definition: RHS.H:97
virtual int ComputeDV(int threadId=0)
Definition: RHS.H:93
virtual int RHS(int threadId)
Definition: RHS.H:69
OperatorT OperatorType
Definition: RHS.H:43
std::vector< std::string > fieldNames
Definition: RHS.H:30
simulation::domain::boundary::base BoundaryType
Definition: RHS.H:19
virtual int Initialize(GridType &inGrid, StateType &inState, StateType &inParam, StateType &targetState, OperatorType &inOperator)
Definition: RHS.H:58
virtual int SetupRHS(GridType &inGrid, StateType &inState, StateType &rhsState, int threadId)
Definition: RHS.H:64
simulation::domain::boundary::bc::base BCType
Definition: RHS.H:47